diff --git a/README.md b/README.md index 9a0b243..d8efbd9 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ This project provides a collection of template renderers. | `rife.render.DateIso` | Renders the current date in ISO 8061 format | | `rife.render.DateTimeIso` | Renders the current date and time in ISO 8061 format | | `rife.render.DateTimeRfc2822` | Renders the current date and time in RFC 2822 format | -| `rife.render.DateTimeUtc` | Renders the current UTC date and time in ISO 8061 format | | `rife.render.TimeIso` | Renders the current time in ISO 8061 format | | `rife.render.Year` | Renders the current year | diff --git a/lib/src/main/java/rife/render/DateTimeIso.java b/lib/src/main/java/rife/render/DateTimeIso.java index 14043d2..d24af3e 100644 --- a/lib/src/main/java/rife/render/DateTimeIso.java +++ b/lib/src/main/java/rife/render/DateTimeIso.java @@ -21,8 +21,12 @@ import rife.template.Template; import rife.template.ValueRenderer; import rife.tools.Localization; +import java.io.IOException; +import java.io.StringReader; +import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.util.Properties; /** *
Return the current date and time in ISO 8601 format.
@@ -49,6 +53,20 @@ public class DateTimeIso implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { + if (template.hasDefaultValue(valueId)) { + var properties = new Properties(); + try { + var tz = "tz"; + properties.load(new StringReader(template.getDefaultValue(valueId))); + if (properties.containsKey(tz)) { + return ZonedDateTime.now().format( + DateTimeIso.iso8601Formatter.withZone(ZoneId.of(properties.getProperty(tz)))); + } + } catch (IOException ignore) { + // do nothing + } + + } return ZonedDateTime.now().format(iso8601Formatter); } } diff --git a/lib/src/main/java/rife/render/DateTimeUtc.java b/lib/src/main/java/rife/render/DateTimeUtc.java deleted file mode 100644 index 5f0f6c9..0000000 --- a/lib/src/main/java/rife/render/DateTimeUtc.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2023 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package rife.render; - -import rife.template.Template; -import rife.template.ValueRenderer; - -import java.time.ZoneId; -import java.time.ZonedDateTime; - -/** - *Return the current UTC date and time in ISO 8601 format.
- * - *Usage:
- * - *- * <!--v render:rife.render.DateTimeUTC/--> - * {{v render:rife.render.DateTimeUTC/}} - *- * - * @author Erik C. Thauvin - * @since 1.0 - */ -public class DateTimeUtc implements ValueRenderer { - /** - * {@inheritDoc} - */ - @Override - public String render(Template template, String valueId, String differentiator) { - return ZonedDateTime.now().format(DateTimeIso.iso8601Formatter.withZone(ZoneId.of("UTC"))); - } -} diff --git a/lib/src/test/java/rife/render/TestDateTime.java b/lib/src/test/java/rife/render/TestDateTime.java index 91cb9d5..66d5372 100644 --- a/lib/src/test/java/rife/render/TestDateTime.java +++ b/lib/src/test/java/rife/render/TestDateTime.java @@ -51,7 +51,10 @@ class TestDateTime { @Test void testDateTimeUtc() { var t = TemplateFactory.HTML.get("dateTimeUtc"); - assertThatCode(() -> DateTimeIso.iso8601Formatter.parse(t.getContent())).doesNotThrowAnyException(); + var content = t.getContent(); + assertThatCode(() -> DateTimeIso.iso8601Formatter.parse(content)).doesNotThrowAnyException(); + assertThat(content).endsWith("Z"); + } @Test diff --git a/lib/src/test/resources/templates/dateTimeUtc.html b/lib/src/test/resources/templates/dateTimeUtc.html index fa7ce31..4329899 100644 --- a/lib/src/test/resources/templates/dateTimeUtc.html +++ b/lib/src/test/resources/templates/dateTimeUtc.html @@ -1 +1,3 @@ - \ No newline at end of file + +tz=UTC + \ No newline at end of file