1.日期格式化
java类库中包含一个Date类,它的对象表示一个特定的瞬间,精确到毫秒。
Java中时间的表示也是数字,标准纪元1970.1.1的0点开始到某个时刻的毫秒数,类型是long。
也就是说在1970.1.1的0点之前都是负数毫秒数,之后都是正数毫秒数。
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
//将时间转化为时间字符串
Date date = new Date();//默认获取当前时间
Date date2 = new Date(123456456156L);//将long类型的毫秒数传入
System.out.println(sdf.format(date));
System.out.println(sdf.format(date2));
//将时间字符串转化为时间
String string = "2019-8-30 11:37:01";
try {
Object date3 = sdf.parse(string);
System.out.println(date3);
System.out.println(sdf.format(date3));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出结果:
2019-08-23 11:40:08
1973-11-30 05:27:36
Fri Aug 30 11:37:01 CST 2019
2019-08-30 11:37:01
各个字母所对应的的意义:
2.日历类GregorianCalendar(公历)
人们对时间的认识是:某年某月某日,而计算机所认识的时间是一个long型的数字。通过Calendar在两者中间搭起桥梁。
注意:
月份:一月是0,二月是1…十二月是11
星期:周日是1,周一是2…周六是7
常用方法:
Calendar calendar = new GregorianCalendar();//格林尼治时间对象
calendar.set(2019, Calendar.AUGUST, 30, 22, 10, 23);//设置时间
System.out.println(calendar.getTime());
calendar.set(Calendar.YEAR, 2018);//设置时间的各个属性
calendar.set(Calendar.MONTH, 11);
calendar.set(Calendar.DATE, 23);
calendar.set(Calendar.HOUR_OF_DAY, 10);//不设置以下三项的时,默认使用当前时间的时分秒
calendar.set(Calendar.MINUTE, 10);
calendar.set(Calendar.SECOND, 10);
System.out.println(calendar.getTime());
System.out.println(calendar.get(Calendar.YEAR));//获取当前时间的年份
calendar.add(Calendar.HOUR, 10);//在原来的时间的基础上加十个小时
System.out.println(calendar.getTime());
输出结果:
Fri Aug 30 22:10:23 CST 2019
Sun Dec 23 10:10:10 CST 2018
2018
Sun Dec 23 20:10:10 CST 2018