diff --git a/ccm-cms/src/main/java/org/librecms/pages/models/NewsModel.java b/ccm-cms/src/main/java/org/librecms/pages/models/NewsModel.java index 60123d968..a4359e327 100644 --- a/ccm-cms/src/main/java/org/librecms/pages/models/NewsModel.java +++ b/ccm-cms/src/main/java/org/librecms/pages/models/NewsModel.java @@ -94,8 +94,8 @@ public class NewsModel implements ProcessesContentItem { return releaseDateTime; } - /** - * Returns the release date of the news represeted by this model formatted + /** + * Returns the release date of the news represented by this model formatted * using the provided pattern. The pattern MUST be a valid pattern for * {@link DateTimeFormatter#ofPattern(java.lang.String) }. * @@ -104,16 +104,29 @@ public class NewsModel implements ProcessesContentItem { * @return The formatted release date. */ public String getReleaseDate(final String pattern) { - return DateTimeFormatter - .ofPattern(pattern, globalizationHelper.getNegotiatedLocale()) - .withZone(ZoneId.systemDefault()) - .format(releaseDateTime); + return Optional + .ofNullable(releaseDateTime) + .map( + dateTime -> DateTimeFormatter + .ofPattern( + pattern, + globalizationHelper.getNegotiatedLocale() + ) + .withZone(ZoneId.systemDefault()) + .format(dateTime) + ) + .orElse(""); } public String getReleaseDateTimeAsString() { - return DateTimeFormatter.ISO_DATE_TIME - .withZone(ZoneId.systemDefault()) - .format(releaseDateTime); + return Optional + .ofNullable(releaseDateTime) + .map( + dateTime -> DateTimeFormatter.ISO_DATE_TIME + .withZone(ZoneId.systemDefault()) + .format(dateTime) + ) + .orElse(""); } @Transactional(Transactional.TxType.REQUIRED) @@ -145,14 +158,14 @@ public class NewsModel implements ProcessesContentItem { .ofNullable(news.getText()) .map(globalizationHelper::getValueFromLocalizedString) .orElse(""); - releaseDateTime = LocalDateTime.from( - news.getReleaseDate().toInstant().atZone(ZoneId.systemDefault()) - ); - // releaseDateTime = Optional - // .ofNullable(news.getReleaseDate()) - // .map(Date::toInstant) - // .map(isoDateTimeFormatter::format) - // .orElse(""); + releaseDateTime = Optional + .ofNullable(news.getReleaseDate()) + .map( + date -> LocalDateTime.from( + date.toInstant().atZone(ZoneId.systemDefault()) + ) + ) + .orElse(null); homepage = news.isHomepage(); }