Skip to content

Commit 348ecfc

Browse files
committed
[WIP]
1 parent 47f5f06 commit 348ecfc

23 files changed

+1042
-712
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@
113113
<scope>test</scope>
114114
</dependency>
115115

116+
<dependency>
117+
<groupId>com.ibm.icu</groupId>
118+
<artifactId>icu4j</artifactId>
119+
<version>62.1</version>
120+
</dependency>
121+
116122
</dependencies>
117123

118124
<build>

src/main/java/liqp/TemplateParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import liqp.filters.Filters;
1111
import liqp.filters.date.BasicDateParser;
1212
import liqp.filters.date.Parser;
13+
import liqp.filters.date.fuzzy.FuzzyDateParser;
1314
import liqp.parser.Flavor;
1415
import liqp.parser.LiquidSupport;
1516
import liqp.tags.Tag;
@@ -425,7 +426,7 @@ public TemplateParser build() {
425426
}
426427

427428
if (dateParser == null) {
428-
dateParser = new Parser();
429+
dateParser = new FuzzyDateParser();
429430
}
430431

431432
return new TemplateParser(strictVariables, showExceptionsFromInclude, evaluateMode, renderTransformer, locale, defaultTimeZone, environmentMapConfigurator, errorMode, fl, stripSpacesAroundTags, stripSingleLine, mapper,

src/main/java/liqp/filters/date/BasicDateParser.java

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.time.*;
44
import java.time.format.DateTimeFormatter;
55
import java.time.format.DateTimeFormatterBuilder;
6+
import java.time.temporal.ChronoField;
67
import java.time.temporal.TemporalAccessor;
78
import java.time.temporal.TemporalField;
89
import java.time.temporal.TemporalQueries;
@@ -70,33 +71,24 @@ public static ZonedDateTime getZonedDateTimeFromTemporalAccessor(TemporalAccesso
7071

7172
ZoneId zoneId = temporal.query(TemporalQueries.zone());
7273
if (zoneId == null) {
73-
LocalDate date = temporal.query(TemporalQueries.localDate());
74-
LocalTime time = temporal.query(TemporalQueries.localTime());
74+
zoneId = defaultZone;
75+
}
7576

76-
if (date == null) {
77-
date = LocalDate.now(defaultZone);
78-
}
79-
if (time == null) {
80-
time = LocalTime.now(defaultZone);
81-
}
82-
return ZonedDateTime.of(date, time, defaultZone);
83-
} else {
84-
LocalDateTime now = LocalDateTime.now(zoneId);
85-
TemporalField[] copyThese = new TemporalField[]{
86-
YEAR,
87-
MONTH_OF_YEAR,
88-
DAY_OF_MONTH,
89-
HOUR_OF_DAY,
90-
MINUTE_OF_HOUR,
91-
SECOND_OF_MINUTE,
92-
NANO_OF_SECOND
93-
};
94-
for (TemporalField tf: copyThese) {
95-
if (temporal.isSupported(tf)) {
96-
now = now.with(tf, temporal.get(tf));
97-
}
77+
LocalDateTime now = LocalDateTime.now(zoneId);
78+
TemporalField[] copyThese = new TemporalField[]{
79+
YEAR,
80+
MONTH_OF_YEAR,
81+
DAY_OF_MONTH,
82+
HOUR_OF_DAY,
83+
MINUTE_OF_HOUR,
84+
SECOND_OF_MINUTE,
85+
NANO_OF_SECOND
86+
};
87+
for (TemporalField tf: copyThese) {
88+
if (temporal.isSupported(tf)) {
89+
now = now.with(tf, temporal.get(tf));
9890
}
99-
return now.atZone(zoneId);
10091
}
92+
return now.atZone(zoneId);
10193
}
10294
}

0 commit comments

Comments
 (0)