JDK7
Data
// 1.创建当前时间 Date d1 = new Date(); System.out.println(d1); // 2.指定时间 Date d2 = new Date(1000L); System.out.println(d2); // 3.修改时间 d2.setTime(2000L); System.out.println(d2); // 4.获取毫秒值 long time = d2.getTime(); System.out.println(time);
SimpleDateFormat
Date d2 = new Date(1000L); System.out.println(d2); // 无参构造 SimpleDateFormat sdf = new SimpleDateFormat(); String formatD2 = sdf.format(d2); // 有参数构造,传入时间格式 SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formatD22 = sdfFormat.format(d2); System.out.println(formatD22); // 解析 Date date2 = sdfFormat.parse(formatD22); System.out.println(date2);
Calendar
代表系统当前时间的日历对象,可以单独设置,获取时间中的年月日
Calendar 是一个抽象类,不可以直接创建对象,底层是根据不同的时区来获取不能的日历对象,默认表示当前时间
获取月份:范围0~11,0代表1月
获取星期: 1代表周日 2代表周一 依次类推
get() 取字段中某字段信息
Calendar calendar = Calendar.getInstance(); // 纪元 System.out.println(calendar.get(0)); // 年 System.out.println(calendar.get(1)); // 月 System.out.println(calendar.get(2)); // 一年中第几周 System.out.println(calendar.get(3)); // 一月中第几周 System.out.println(calendar.get(5)); // 一月中的第几天 System.out.println(calendar.get(6)); 为了方便记忆,使用常量 // 纪元 System.out.println(calendar.get(0)); // 年 System.out.println(calendar.get(Calendar.YEAR)); // 月 System.out.println(calendar.get(Calendar.MONTH)); // 一年中第几周 System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 一月中第几周 System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 一月中的第几天 System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
Jdk8
JDK7 代码太麻烦,而且多线程不安全
Instant
时间戳
// 获取当前时间的Instant对象(标准时间) Instant now = Instant.now(); System.out.println(now); // 指定时区 ZonedDateTime nw = Instant.now().atZone(ZoneId.of("Asia/Shanghai")); System.out.println(nw); // 昨天 Instant yesterday = Instant.now().minusSeconds(86400); System.out.println(yesterday); // 比较 System.out.println(now.isAfter(yesterday));
DateTimeFormatter
用于时间的格式化和解析