Java 之LocalDateTime的介绍和使用

LocalDateTime是Java的日期和时间类之一,用于表示不带时区信息的日期时间。

  • LocalDateTime 没有时区, 所以也就不能用来直接获取时间戳
  • LocalDateTime 是一个基于值得类, 所以该类的示例不是通过构造函数的方式进行创建
    在这里插入图片描述

以下是一些关于LocalDateTime的常见操作和用法:

1. 创建LocalDateTime对象:

获取当前的时间:

		 LocalDateTime now = LocalDateTime.now(); // 获取当前日期和时间

通过指定年月日时分秒来创建LocalDateTime 对象

   LocalDateTime dateTime = LocalDateTime.of(2023, 8, 8, 23, 59, 59); // 指定日期和时间

LocalDateTime的日期对象遵循的是ISO-8601的日期标准,也就是时间的字符串的表示形式是 2023-08-08T10:15:30

LocalDateTime parsedDateTime = LocalDateTime.parse("2023-08-08T23:59:59"); // 解析字符串为LocalDateTime对象

2. 获取LocalDateTime的日期和时间成分:

   int year = dateTime.getYear();
   Month month = dateTime.getMonth();
   int dayOfMonth = dateTime.getDayOfMonth();
   int hour = dateTime.getHour();
   int minute = dateTime.getMinute();
   int second = dateTime.getSecond();

3. 修改日期和时间成分:

   LocalDateTime modifiedDateTime = dateTime.withYear(2023); // 修改年份为2023
   LocalDateTime addedDateTime = dateTime.plusDays(1); // 增加一天
   LocalDateTime subtractedDateTime = dateTime.minusHours(2); // 减去两小时

4. 格式化为字符串:

   DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
   String formattedDateTime = dateTime.format(formatter); // 格式化为字符串

5. 进行日期和时间计算:

   LocalDateTime startDateTime = LocalDateTime.of(2022, 1, 1, 0, 0, 0);
   LocalDateTime endDateTime = LocalDateTime.of(2022, 12, 31, 23, 59, 59);
   Duration duration = Duration.between(startDateTime, endDateTime); // 计算时间间隔
   long minutes = duration.toMinutes(); // 获取分钟数

LocalDateTime类提供了许多方法来处理日期和时间,包括创建、访问和修改成分、格式化、计算时间间隔等。它是一个常用的类,适用于许多日期和时间操作。

需要注意的是,LocalDateTime表示的是不考虑时区的日期和时间。如果需要考虑时区信息,可以使用ZonedDateTimeOffsetDateTime等具有时区信息的类。

6. LocalDateTime 转换为时区时间

LocalDateTime 和时区无关, 所以给定一个LocalDateTime的对象, 可以将其转换为指定时区的时间, 示例如下:

		LocalDateTime localdateTime = LocalDateTime.of(2023, 8, 8, 23, 59, 59); // 指定日期和时间
		ZonedDateTime utc8DateTime= ZonedDateTime.of(localdateTime, ZoneId.of("UTC+8"));

完整示例代码:



猜你喜欢

转载自blog.csdn.net/oscar999/article/details/132113646