JAVA:Date 时间类

获取当前时间时间戳:

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;
}

猜你喜欢

转载自blog.csdn.net/xuejianbest/article/details/84792106