OffsetTime
Существует также класс OffsetTime
. Но этот класс не имеет смысла для меня и для других людей. Я предполагаю, что он был включен в java .time просто для того, чтобы предоставить аналог такого типа, определенного в стандарте SQL. Тип SQL также не имеет смысла. Я упоминаю эти типы только для полноты картины; Я не рекомендую их использовать.
LocalTime
Для обоих TIME
в стандартном SQL и LocalTime
в Java значение представляет общее время суток, без какой-либо концепции часового пояса или смещения. Таким образом, не должно быть никаких часовых поясов, вовлеченных в его хранение. Если вы напишите двенадцать полдней 12:00:00.0
в базу данных, вы должны получить двенадцать полдней.
myPreparedStatement.setObject( … , myLocalTime ) ;
И поиск.
LocalTime myLocalTime = myResultSet.getObject( … , LocalTime.class ) ;
ZonedDateTime
Если Вы продаете билеты на определенный показ фильма ie в кинотеатре, вы должны объединить это время дня с датой и часовым поясом.
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
LocalDate tomorrow = LocalDate.now( z ).plusDays( 1 ) ;
ZonedDateTime zdtTicket = ZonedDateTime.of( tomorrow , myLocalTime , z ) ;
См. тот же момент в UT C.
Instant instant = zdtTicket.toInstant() ;