Java LocalDateTime 类

Java 8 中引入的 java.time.LocalDateTime 类表示没有时区信息的本地日期时间对象。

它代表纳秒精度的时间,例如2007-12-03T10:15:30:55.123456789

请注意,LocalDateTime实例是不可变的和线程安全的。

Java 如何将LocalDateTime格式化为字符串

使用LocalDateTime.format(DateTimeFormatter)方法将本地时间格式化为所需的字符串表示形式。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss a");
LocalDateTime now = LocalDateTime.now();
String dateTimeString = now.format(formatter);	//2019-03-28 14:47:33 PM

Java 如何修改当地时间

LocalDateTime提供了以下方法,可用于获取相对于可用 localdatetime 实例的新 localdatetime 实例。

  • plusYears()
  • plusMonths()
  • plusDays()
  • plusHours()
  • plusMinutes()
  • plusSeconds()
  • plusNanos()
  • minusYears()
  • minusMonths()
  • minusDays()
  • minusHours()
  • minusMinutes()
  • minusSeconds()
  • minusNanos()
LocalDateTime now = LocalDateTime.now();
//3 hours later
LocalDateTime localDateTime1 = now.plusHours(3);	
//3 minutes earliar
LocalDateTime localDateTime2 = now.minusMinutes(3);
//Next year same time
LocalDateTime localDateTime2 = now.plusYears(1);
//Last year same time
LocalDateTime localDateTime2 = now.minusYears(1);

Java如何创建LocalDateTime

通常,我们将在两种情况下创建 LocalDateTime 实例,例如:获取当前时间或者为指定时间戳创建本地日期时间。

获取当前时间

使用以下工厂方法获取当前本地日期时间。

LocalDateTime now = LocalDateTime.now();

创建指定时间

要创建具有特定日期和时间信息的本地时间,请使用以下方法。

// 精度毫秒 
LocalDateTime localDateTime1 = 
		LocalDateTime.of(2019, 03, 28, 14, 33, 48, 123456789);
// 月份
LocalDateTime localDateTime2 = 
		LocalDateTime.of(2019, Month.MARCH, 28, 14, 33, 48, 123456789);
// 精度秒
LocalDateTime localDateTime3 = 
		LocalDateTime.of(2019, Month.MARCH, 28, 14, 33, 48);
// 精度分钟
LocalDateTime localDateTime4 = 
		LocalDateTime.of(2019, Month.MARCH, 28, 14, 33);
// 本地日期和实际
LocalDate date = LocalDate.of(2109, 03, 28);
LocalTime time = LocalTime.of(10, 34);	
LocalDateTime localDateTime5 = LocalDateTime.of(date, time);

LocalDateTime 类声明

public final class LocalDateTime
	extends Object
	implements Temporal, TemporalAdjuster, ChronoLocalDateTime<LocalDate>, Serializable
{
	//class body
}
www. On IT Road .com

Java 如何将字符串解析为LocalDateTime

LocalDateTime类有两个重载的 parse() 方法将字符串中的时间转换为本地时间实例。

parse(CharSequence text)	//1
parse(CharSequence text, DateTimeFormatter formatter)	//2
  • 如果字符串包含ISO_LOCAL_DATE_TIME模式中的时间,则使用第一种方法,例如:2019-03-27T10:15:30。这是 Java 中本地时间的默认模式。
  • 对于任何其他日期时间模式,我们需要使用第二种方法,将时间作为字符串以及表示该日期时间字符串模式的格式化程序。
//1 - default time pattern
String time = "2019-03-27T10:15:30";
LocalDateTime localTimeObj = LocalDateTime.parse(time);
//2 - specific date time pattern
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss a");
String time1 = "2019-03-27 10:15:30 AM";
LocalDateTime localTimeObj1 = LocalDateTime.parse(time1, formatter);
日期:2020-09-17 00:09:37 来源:oir作者:oir