ТЛ; Др
LocalDateTime ldt = LocalDateTime.parse("2009-08-19 12:00:00".replace(" " , "T"));
java.time
Другие ответы правильны, но используют устаревшие классы даты и времени. Эти трудные старые классы были вытеснены классами java.time.
Ваша строка ввода соответствует стандарту ISO 8601. Тонкая настройка, заменив SPACE посередине на T
. Затем он может быть проанализирован без указания шаблона форматирования. Классы java.time используют ISO 8601 по умолчанию при разборе/генерации строк.
String input = "2009-08-19 12:00:00".replace(" " , "T");
Входные данные не имеет информации о offset-from-UTC или часового пояса. Поэтому мы анализируем как LocalDateTime
.
LocalDateTime ldt = LocalDateTime.parse(input);
Если по контексту вы знаете предполагаемое смещение, примените его. Возможно, он был предназначен для UTC (смещение нуля), где мы можем использовать константу ZoneOffset.UTC
.
OffsetDateTime odt = ldt.atOffset(ZoneOffset.UTC);
Возможно, вы знаете, что это предназначалось для определенного часового пояса. Часовой пояс - это смещение плюс набор правил для обработки аномалий, таких как летнее время (DST).
ZonedDateTime zdt = ldt.atZone(ZoneId.of("America/Montreal"));
О java.time
java.time каркас встроен в Java 8 и более поздних версий. Эти классы вытесняют старые неприятные классы времени, такие как java.util.Date
, .Calendar
, & java.text.SimpleDateFormat
.
Проект Joda-Time, теперь в maintenance mode, советует перейти на java.time.
Чтобы узнать больше, см. Oracle Tutorial. И поиск Stack Overflow для многих примеров и объяснений.
Большая часть функциональности java.time будет обратно портирован на Java 6 & 7 в ThreeTen-Backport и дополнительно выполнен с возможностью Android в ThreeTenABP (см How to use…).
Проект ThreeTen-Extra расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time.
Я бы хотел, чтобы люди переставали называть вещи «причудливыми» и «странными» всякий раз, когда они совершали ошибки. :/ – Bombe
Извините. Я отлаживал код, который кто-то много лет написал моему старшему, и я ожидал, что смогу доверять. –