在我们使用Date的时候,会发现很多无法理解的返回值,而且有很多方法是已经被弃用了的
在我们使用了jdk8+之后,我们可以使用LocalDate,LocalTime或者LocalDateTime来代替传统的Date
代码示例以及输出
import java.time.LocalDateTime;
import java.time.Month;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
* <p>
* LocalDateTime的使用
* </p>
*
* @author Levi
* @since 2019/12/25
*/
public class LocalDateTimeUtil {
public static void main(String[] args) {
System.out.println("-------------使用Date-------------");
Date rightNow = new Date();
System.out.println(rightNow);
System.out.println(rightNow.getYear());
System.out.println(rightNow.getMonth());
System.out.println(rightNow.getDay());
System.out.println(rightNow.getHours());
System.out.println(rightNow.getMinutes());
System.out.println(rightNow.getSeconds());
System.out.println("----------使用LocalDateTime------------");
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
System.out.println(now.getYear());
System.out.println(now.getMonth());
System.out.println(now.getDayOfMonth());
System.out.println(now.getHour());
System.out.println(now.getMinute());
System.out.println(now.getSecond());
System.out.println("-------------构造一个日期------------");
LocalDateTime time = LocalDateTime.of(2020, Month.MAY, 1, 5, 20, 0);
System.out.println(time);
System.out.println("-------------修改日期----------------");
// 减使用minus
System.out.println(time.minusYears(1L));
// 加使用plus
System.out.println(time.plusMonths(5));
// 直接修改使用with
System.out.println(time.withYear(2022));
System.out.println("----------格式化日期-------------");
String result1 = now.format(DateTimeFormatter.ISO_DATE);
String result2 = now.format(DateTimeFormatter.BASIC_ISO_DATE);
String result3 = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd"));
System.out.println("格式化后的日期(基本样式 1)-----> " + result1);
System.out.println("格式化后的日期(基本样式 2)-----> " + result2);
System.out.println("格式化后的日期(自定义样式)-----> " + result3);
System.out.println("------------时间反解析----------");
LocalDateTime parse = LocalDateTime.parse("2020--01--01 01:01", DateTimeFormatter.ofPattern("yyyy--MM--dd HH:mm"));
System.out.println(parse);
}
}
输出:
我们不难发现LocalDateTime还是很友好的,建议jdk8+的小伙伴尽可能在之后使用LocalDateTime而不是去使用Date