В чем разница между java 8 ZonedDateTime и OffsetDateTime?



Я прочитал документацию, но я все еще не могу получить, когда я должен использовать один или другой:




согласно документации OffsetDateTime должен использоваться при записи даты в базу данных, но я не понимаю, почему.

747   1  

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

    Ничего не найдено.