- 简介
(Calendar,DateFormat,Date)由于线程安全、重量级、序列化成本高等问题而饱受批评。Java 8 新的 java.time 中包含了所有关于时钟(Clock),本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。
历史悠久的 Date 类新增了 toInstant() 方法,用于把 Date 转换成新的表示形式。
目前Java8新增了java.time包定义的类表示日期-时间概念的规则,很方便使用;最重要的一点是值不可变,且线程安全。
- 常用API
@Test
public void testTime(){
//输出当前时间
LocalTime time = LocalTime.now();
//输出当前日期
LocalDate date = LocalDate.now();
//输出当前 日期+时间
LocalDateTime datetime = LocalDateTime.now();
//格式化形式输出LocalDateTime,同样适用于LocalTime 和 LocalDate
DateTimeFormatter formatStr = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formatDate = formatStr.format(datetime);
//字符串转时间LocalDateTime并格式化,同样适用于LocalTime 和 LocalDate
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM dd, yyyy - HH:mm");
LocalDateTime parsed = LocalDateTime.parse("05 03, 2016 - 07:13", formatter);
String strToDate = formatter.format(parsed);
System.out.println("当前时间: "+time.toString());
System.out.println("当前日期: "+date.toString());
System.out.println("当前日期时间: "+datetime.toString());
System.out.println("当前日期时间(格式化):"+formatDate);
System.out.println("字符串转时间(格式化):"+strToDate);
}
输出为:
当前时间: 17:51:56.790
当前日期: 2021-01-13
当前日期时间: 2021-01-13T17:51:56.791
当前日期时间(格式化):2021-01-13 17:51:56
字符串转时间(格式化):05 03, 2016 - 07:13
- 还有更多详细使用方法或者自行百度。