解析日期和时间
要从字符串创建LocalDateTime对象,可以使用静态LocalDateTime.parse()方法。它需要一个字符串和一个DateTimeFormatter作为参数。 DateTimeFormatter用于指定日期/时间模式。
String str = "1986-04-08 12:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
格式化日期和时间
要从LocalDateTime对象中创建格式化的字符串,可以使用format()方法。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.of(1986, Month.APRIL, 8, 12, 30);
String formattedDateTime = dateTime.format(formatter); // "1986-04-08 12:30"
请注意,在DateTimeFormatter中有一些常用的日期/时间格式被预定义为常量。例如:使用DateTimeFormatter.ISO_DATE_TIME格式化上面的LocalDateTime实例将产生字符串"1986-04-08T12:30:00"。
parse()和format()方法适用于所有日期/时间相关的对象(例如LocalDate或ZonedDateTime)
计算两个时间差
LocalDateTime start = LocalDateTime.now();
LocalDateTime end = LocalDateTime.parse(expireTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
long secondsDiff = ChronoUnit.SECONDS.between(start, end);
计算当前时间到今日结束秒数
/**
* 获取当前时间截止24点的秒数
* @return 秒数
*/
public static long getNaturalDay() {
LocalDateTime startTime = LocalDateTime.now();
LocalDate localDate = LocalDate.now();
localDate = localDate.plusDays(1);
LocalDateTime endTime = LocalDateTime.of(localDate, LocalTime.of(0, 0, 0));
return ChronoUnit.SECONDS.between(startTime, endTime);
}