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
дата и время отображаются независимо от часового пояса. Если вам нужно учитывать информацию о часовом поясе, вы можете использовать классы ZonedDateTime
или с информацией о часовом поясе.OffsetDateTime
6. LocalDateTime преобразуется во время часового пояса.
LocalDateTime не имеет ничего общего с часовым поясом, поэтому, учитывая объект LocalDateTime, его можно преобразовать во время в указанном часовом поясе, пример следующий:
LocalDateTime localdateTime = LocalDateTime.of(2023, 8, 8, 23, 59, 59); // 指定日期和时间
ZonedDateTime utc8DateTime= ZonedDateTime.of(localdateTime, ZoneId.of("UTC+8"));