1 Date
1)概述
Date表示特定的瞬间,精确到毫秒。
Date date = new Date();
System.out.println(date); // Thu Jul 12 09:33:07 CST 2018
System.out.println(date.getTime()); // 1531359187510(日期对象转换成对应的时间毫秒值)
2 DateFormat
DateFormat类,可以将一个Date对象转换成一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转为一个Date对象。
指定格式:
- 年 y
- 月 M
- 日 d
- 时 H
- 分 m
- 秒 s
- 常用格式:yyyy-MM-dd HH:mm:ss
// 将Date转换成String
DateFormat df=new SimpleDateFormat("yyyy-MM-dd"); // 对日期进行格式化
Date date = new Date();
String str_time=df.format(date);
System.out.println(str_time); // 2018-07-12
// 将String转换成Date
String str = "2018年7月12日";
DateFormat df1 = new SimpleDateFormat("yyyy年MM月dd日");
Date date1=null;
try {
date1 = df1.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(date1); // Thu Jul 12 00:00:00 CST 2018
3 Calendar
日历类,该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar为抽象类,在创建对象时并不是直接创建,而是通过静态方法创建。
// 创建对象
Calendar c1=Calendar.getInstance();
int year=c1.get(Calendar.YEAR);
int month=c1.get(Calendar.MONTH);
int date=c1.get(Calendar.DATE);
int hour=c1.get(Calendar.HOUR);
int min=c1.get(Calendar.MINUTE);
int sec=c1.get(Calendar.SECOND);
// 结果:2018年6月12日 10:16:12
System.out.println(year+"年"+month+"月"+date+"日"+" "+hour+":"+min+":"+sec+" ");
// 修改当前时间为3天前
c1.add(Calendar.DATE, 3);
// 修改当前时间为5小时后
c1.add(Calendar.HOUR, 5);
// 结果:Sun Jul 15 15:16:12 CST 2018
System.out.println(c1.getTime());
// 设置时间为2020-6-6
c1.set(Calendar.YEAR, 2020);
c1.set(Calendar.MONTH, 5); // 0代表一月
c1.set(Calendar.DATE, 6);
//c1.set(2020, 5, 6); // 另一种方法
// getTime()返回的是Date对象
System.out.println(c1.getTime()); // Sat Jun 06 15:16:12 CST 2020