Remove DateTimeUtc, replaced with tz property of DateTimeIso

This commit is contained in:
Erik C. Thauvin 2023-03-17 21:46:20 -07:00
parent 26e03588ea
commit 7f1cea5714
5 changed files with 25 additions and 50 deletions

View file

@ -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.DateIso` | Renders the current date in ISO 8061 format |
| `rife.render.DateTimeIso` | Renders the current date and time 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.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.TimeIso` | Renders the current time in ISO 8061 format |
| `rife.render.Year` | Renders the current year | | `rife.render.Year` | Renders the current year |

View file

@ -21,8 +21,12 @@ import rife.template.Template;
import rife.template.ValueRenderer; import rife.template.ValueRenderer;
import rife.tools.Localization; import rife.tools.Localization;
import java.io.IOException;
import java.io.StringReader;
import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Properties;
/** /**
* <p>Return the current date and time in ISO 8601 format.</p> * <p>Return the current date and time in ISO 8601 format.</p>
@ -49,6 +53,20 @@ public class DateTimeIso implements ValueRenderer {
*/ */
@Override @Override
public String render(Template template, String valueId, String differentiator) { 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); return ZonedDateTime.now().format(iso8601Formatter);
} }
} }

View file

@ -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;
/**
* <p>Return the current UTC date and time in ISO 8601 format.</p>
*
* <p>Usage:</p>
*
* <pre>
* &lt;!--v render:rife.render.DateTimeUTC/--&gt;
* {{v render:rife.render.DateTimeUTC/}}
* </pre>
*
* @author <a href="https://erik.thauvin.net/">Erik C. Thauvin</a>
* @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")));
}
}

View file

@ -51,7 +51,10 @@ class TestDateTime {
@Test @Test
void testDateTimeUtc() { void testDateTimeUtc() {
var t = TemplateFactory.HTML.get("dateTimeUtc"); 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 @Test

View file

@ -1 +1,3 @@
<!--v render:rife.render.DateTimeUtc/--> <!--v render:rife.render.DateTimeIso -->
tz=UTC
<!--/v-->