JAVA:Date 時間類
阿新 • • 發佈:2018-12-06
獲取當前時間時間戳:
Date date = new Date();
long timestamp = date.getTime(); //1970.01.01 00:00:00 GMT 以來此 Date 物件表示的毫秒數
Date中大多方法都過時,改用java.util.Calendar
Calendar rightNow = Calendar.getInstance(); //獲取當前日曆
long timestamp = rightNow.getTimeInMillis(); //獲取時間戳
Calendar類獲取或設定時間用get和set方法
cal.get(Calendar. YEAR);
cal.set(Calendar.DAY_OF_MONTH, 12);
Date和Calendar相互轉換
cal.setTime(date);
date = cal.getTime();
String轉換為Date:
String date_str = "2016-03-28 16:20:00";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date_str);
Date轉為固定格式的String:
Date date = new Date();
String date_str = (new SimpleDateFormat("yyyy-MM-dd")).format(date);
時間戳long到String的轉換同上
SimpleDateFormat函式語法:
G 年代標誌符
y 年
M 月
d 日
h 時 在上午或下午 (1~12)
H 時 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第幾天
F 一月中第幾個星期幾
w 一年中第幾個星期
W 一月中第幾個星期
a 上午 / 下午 標記符
k 時 在一天中 (1~24)
K 時 在上午或下午 (0~11)
z 時區
獲取指定周或指定月第一天
設定日期、固定日期增減時間後的日期,獲取日期為當前周、月第幾天
private Calendar getMondayOfWeek(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
//返回所在周第幾天:週一返回1,週二返回2...
int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week == 0)
day_of_week = 7;
//當前日期的Calendar.DATE增加1-day_of_week後的日期,Calendar.DATE表示日欄位,也就是把c增加1-day_of_week天
c.add(Calendar.DATE, 1-day_of_week);
return c;
}
//返回引數所在月的第一天
private Calendar getFirstDateOfMonth(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
//返回所在月第幾天:1日返回1,2日返回2...
int day_of_month = c.get(Calendar.DAY_OF_MONTH);
c.add(Calendar.DATE, 1 - day_of_month);
return c;
}