src/main/java/org/embulk/input/zendesk/utils/ZendeskDateUtils.java in embulk-input-zendesk-0.3.5 vs src/main/java/org/embulk/input/zendesk/utils/ZendeskDateUtils.java in embulk-input-zendesk-0.3.6
- old
+ new
@@ -7,10 +7,11 @@
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
+import java.time.format.ResolverStyle;
import java.util.Optional;
public class ZendeskDateUtils
{
private ZendeskDateUtils()
@@ -19,13 +20,18 @@
public static long isoToEpochSecond(final String time)
{
final Optional<String> pattern = supportedTimeFormat(time);
if (pattern.isPresent()) {
- final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern.get()).withZone(ZoneOffset.UTC);
- final OffsetDateTime offsetDateTime = LocalDateTime.parse(time, formatter).atOffset(ZoneOffset.UTC);
- return offsetDateTime.toInstant().getEpochSecond();
+ final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern.get()).withZone(ZoneOffset.UTC).withResolverStyle(ResolverStyle.STRICT);
+ try {
+ final OffsetDateTime offsetDateTime = LocalDateTime.parse(time, formatter).atOffset(ZoneOffset.UTC);
+ return offsetDateTime.toInstant().getEpochSecond();
+ }
+ catch (DateTimeParseException e) {
+ throw new DataException(e.getMessage());
+ }
}
throw new DataException("Fail to parse value '" + time + "' follow formats " + ZendeskConstants.Misc.SUPPORT_DATE_TIME_FORMAT.toString());
}
@@ -44,11 +50,10 @@
return Optional.empty();
}
public static String convertToDateTimeFormat(String datetime, String dateTimeFormat)
{
- return OffsetDateTime.ofInstant(Instant.ofEpochSecond(ZendeskDateUtils.isoToEpochSecond(datetime)), ZoneOffset.UTC)
- .format(DateTimeFormatter.ofPattern(dateTimeFormat));
+ return Instant.ofEpochSecond(ZendeskDateUtils.isoToEpochSecond(datetime)).atOffset(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern(dateTimeFormat));
}
// start_time should be start from 0
public static long getStartTime(final String time)
{