Skip to content

Commit

Permalink
Date formatter default calendar
Browse files Browse the repository at this point in the history
Default calendar to gregorian, allow override in options.
  • Loading branch information
phensley committed May 1, 2024
1 parent 9d0fee2 commit ddd9ccc
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
14 changes: 14 additions & 0 deletions core/src/main/java/com/squarespace/template/OptionParsers.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

import org.apache.commons.lang3.StringUtils;

import com.squarespace.cldrengine.api.CalendarType;
import com.squarespace.cldrengine.api.ContextType;
import com.squarespace.cldrengine.api.CurrencyFormatOptions;
import com.squarespace.cldrengine.api.CurrencyFormatStyleType;
Expand Down Expand Up @@ -73,6 +74,9 @@ public static DateFormatOptions datetime(Arguments args) {
public static DateFormatOptions datetime(List<String> args) {
DateFormatOptions options = DateFormatOptions.build();
parse(args, options, OptionParsers::datetimeOption);
if (!options.calendar.ok()) {
options.calendar(CalendarType.GREGORY);
}
return options;
}

Expand All @@ -83,6 +87,9 @@ public static DateIntervalFormatOptions interval(Arguments args) {
public static DateIntervalFormatOptions interval(List<String> args) {
DateIntervalFormatOptions options = DateIntervalFormatOptions.build();
parse(args, options, OptionParsers::intervalOption);
if (!options.calendar.ok()) {
options.calendar(CalendarType.GREGORY);
}
return options;
}

Expand All @@ -93,6 +100,9 @@ public static RelativeTimeFormatOptions relativetime(Arguments args) {
public static RelativeTimeFormatOptions relativetime(List<String> args) {
RelativeTimeFormatOptions options = RelativeTimeFormatOptions.build();
parse(args, options, OptionParsers::relativetimeOption);
if (!options.calendar.ok()) {
options.calendar(CalendarType.GREGORY);
}
return options;
}

Expand Down Expand Up @@ -212,6 +222,10 @@ private static void datetimeOption(String arg, String value, DateFormatOptions o
}

switch (arg) {
case "calendar":
options.calendar(CalendarType.fromString(value.equals("gregorian") ? "gregory" : value));
break;

case "context":
options.context(ContextType.fromString(value));
break;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.squarespace.template.plugins.platform.i18n;

import org.testng.annotations.Test;

import com.squarespace.template.TestSuiteRunner;
import com.squarespace.template.plugins.platform.PlatformUnitTestBase;

public class DateTimeFormatterTest extends PlatformUnitTestBase {

private final TestSuiteRunner runner = new TestSuiteRunner(compiler(), getClass());

@Test
public void testDatetime() {
runner.run("f-datetime-1.html");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
:PROPERTIES
locale=ja

:JSON
{
"t": 1520751625000
}

:TEMPLATE
{t|datetime date:full}
{t|datetime date:full calendar:japanese}

:OUTPUT
2018年3月11日日曜日
平成30年3月11日日曜日

0 comments on commit ddd9ccc

Please sign in to comment.