Псевдозоны
ET, EST и IST фактически не являются часовыми поясами.Эти 2-4-буквенные псевдозоны не стандартизированы и даже не уникальны!Например, IST может означать стандартное время Индии, стандартное время Ирландии, стандартное время Исландии и многое другое.
Имена зон реального времени принимают формат Continent/Region
, например Africa/Tunis
.
Дата и зона отдельно
Дата с часовым поясом не имеет реального значения.
Обрабатывать дату как объект LocalDate
.
String input = "12-DEC-2018"
DayeTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" , Locale.US ) ;
LocalDate ld = LocalDate.parse( input , f ) ;
Обрабатывайте нужный часовой пояс отдельно, как ZoneId
объект.
ZoneId zNewYork = ZoneId.of( "America/New_York" ) ;
Для объединения определите первый момент дня.
ZonedDateTime zdtNewYork = ld.atStartOfDay( z ) ;
Создание текста, представляющего этот момент, в стандартном формате ISO 8601, расширенном для добавления названия часового пояса в квадратных скобках.
Чтобы увидеть тот же момент в UTC, извлеките Instant
.
Instant instant = zdtNewYork.toInstant() ;
Настройка в другую зону.
ZonedDateTime zdtKolkata = instant.atZone( ZoneId.of( "Asia/Kolkata" ) ) ;
Чтобы сфокусироваться только на дате, получите LocalDate
для дня того же момента, если смотреть через объектив настенного времени, используемого в Индии.
LocalDate ldKolkata = zdtKolkata.toLocalDate() ;
О java.time
Среда java.time встроена в Java 8и позже.Эти классы вытесняют старые классные устаревшие классы даты и времени, такие как java.util.Date
, Calendar
и & SimpleDateFormat
.
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial .И поиск переполнения стека для многих примеров и объяснений.Спецификация: JSR 310 .
Вы можете обмениваться java.time объектами напрямую с вашей базой данных.Используйте драйвер JDBC , совместимый с JDBC 4.2 или более поздней версии.Нет необходимости в строках, нет необходимости в java.sql.*
классах.
Где получить классы java.time?
ThreeTen-Extra Проект расширяет java.time дополнительными классами.Этот проект является полигоном для возможных будущих дополнений к java.time.Здесь вы можете найти несколько полезных классов, таких как Interval
, YearWeek
, YearQuarter
и more .