Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpDtPs 158 of 322 menu
◀ ▶

Разбор текста в дату и время в Java

Разбор зеркален форматированию: тот же DateTimeFormatter передают в parse или вызывают parse у типа с форматтером по умолчанию. Несовпадение шаблона и текста дает DateTimeParseException.

Стандартная локальная отметка без зоны разбирается LocalDateTime.parse в ISO-виде:

import java.time.LocalDateTime; public class Main { public static void main(String[] args) { LocalDateTime slot = LocalDateTime.parse("2024-11-01T09:00:00"); System.out.println(slot.getDayOfMonth()); } }

Свой порядок частей задают форматтером:

import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { String raw = "25/05/2020 02:35:05"; DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss"); LocalDateTime when = LocalDateTime.parse(raw, fmt); System.out.println(when.getHour()); } }

Строка с поясом или смещением собирается в ZonedDateTime. ISO с суффиксом Z или +03:00 разбирает ZonedDateTime.parse:

import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime event = ZonedDateTime.parse("2024-06-15T14:30:00+03:00"); System.out.println(event.toInstant()); } }

После разбора значение можно перевести в другой пояс или в Instant для хранения. Шаблон и текст должны совпадать по пробелам и разделителям.

Разберите 2024-11-01T09:00:00 в формате ISO и выведите день месяца.

Разберите 15/06/2020 10:17:23 с шаблоном день/месяц/год часы:минуты:секунды и выведите минуты.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить