В чем разница между java 8 ZonedDateTime и OffsetDateTime?
Я прочитал документацию, но я все еще не могу получить, когда я должен использовать один или другой:
согласно документации OffsetDateTime должен использоваться при записи даты в базу данных, но я не понимаю, почему.
1 ответ:
javadocs говорят это:
"
OffsetDateTime,ZonedDateTimeиInstantвсе магазине миг на временной линии с точностью до наносекунды.Instantявляется самым простым, просто представляя момент.OffsetDateTimeдобавляет к мгновению смещение от UTC / Greenwich, что позволяет получить локальную дату-время.ZonedDateTimeдобавляет правила полного часового пояса."источник: https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html
таким образом разница между
OffsetDateTimeиZonedDateTimeэто то, что последний включает в себя правила, которые охватывают корректировки летнего времени.OffsetDateTime должен использоваться при записи даты в базу данных, но я не понимаю, почему.
одна из причин заключается в том, что даты с локальными смещениями времени всегда представляют одни и те же моменты времени и поэтому имеют стабильную заказ. Напротив, значение дат с полной информацией о часовом поясе нестабильно перед лицом корректировки правил для соответствующих часовых поясов. (И это действительно происходит...)
даты, значение / порядок которых нестабильны, проблематичны, если (например) вы создаете индекс базы данных в поле Дата.
Comments