Почему JSF convertDateTime не поддерживает Instant ? Он поддерживает все другие «новые» классы даты и времени , но не Instant. Который я хотел использовать для всех временных меток в моей платформе. Например, для создания и редактирования даты / времени сообщений на форуме. Все эти даты будут сохранены в UT C и отформатированы на внешнем интерфейсе в зависимости от часового пояса пользователя.
Я мог бы написать другой конвертер. Но сначала я хотел бы знать, если это не поддерживается по уважительной причине. Или следует использовать другой класс DateTime для описанной цели?
Я ожидал использовать что-то вроде:
<h:outputText value="#{post.creationTimestamp}">
<f:convertDateTime type="Instant" timeZone="#{userBean.timeZone}" dateStyle="long" timeStyle="short"/>
</h:outputText>
Где post.creationTimestamp
- это Мгновенный и userBean.timeZone
является Часовой пояс . Но это не работает, потому что тип Instant не поддерживается. Одно из возможных решений:
<h:outputText value="#{post.creationTimestamp.atZone(userBean.timeZone.toZoneId())}">
<f:convertDateTime type="localDateTime" dateStyle="long" timeStyle="short" />
</h:outputText>
Что кажется немного громоздким.