diff --git a/src/main/java/org/cobbzilla/util/time/TimeUtil.java b/src/main/java/org/cobbzilla/util/time/TimeUtil.java index c03d797..c7efa87 100644 --- a/src/main/java/org/cobbzilla/util/time/TimeUtil.java +++ b/src/main/java/org/cobbzilla/util/time/TimeUtil.java @@ -4,10 +4,7 @@ import org.cobbzilla.util.string.StringUtil; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.joda.time.DurationFieldType; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.PeriodFormatter; -import org.joda.time.format.PeriodFormatterBuilder; +import org.joda.time.format.*; import static java.util.concurrent.TimeUnit.*; import static org.apache.commons.lang3.LocaleUtils.toLocale; @@ -37,6 +34,7 @@ public class TimeUtil { public static final DateTimeFormatter DATE_FORMAT_HYPHEN_MMDDYYYY = DateTimeFormat.forPattern("MM-dd-yyyy"); public static final DateTimeFormatter DATE_FORMAT_HYPHEN_MMMDDYYYY = DateTimeFormat.forPattern("MMM-dd-yyyy"); public static final DateTimeFormatter DATE_FORMAT_EEE_DD_MMM_YYYY_HH_MM_SS_ZZZ = DateTimeFormat.forPattern("EEE, dd MMM yyyy HH:mm:ss zzz"); + public static final DateTimeFormatter DATE_FORMAT_ISO_8601 = ISODateTimeFormat.dateTimeParser(); public static final DateTimeFormatter DATE_FORMAT_IF_MODIFIED_SINCE = DATE_FORMAT_EEE_DD_MMM_YYYY_HH_MM_SS_ZZZ; public static final DateTimeFormatter DATE_FORMAT_LAST_MODIFIED = DATE_FORMAT_IF_MODIFIED_SINCE; @@ -66,7 +64,7 @@ public class TimeUtil { return empty(time) ? null : formatter.withLocale(toLocale(locale)).parseDateTime(time).getMillis(); } - public static Object parse(String val) { + public static Long parse(String val) { for (DateTimeFormatter f : DATE_TIME_FORMATS) { try { return TimeUtil.parse(val, f); @@ -77,6 +75,9 @@ public class TimeUtil { return null; } + public static Long parseISO8601(String val) { return DATE_FORMAT_ISO_8601.parseMillis(val); } + public static String formatISO8601(long val) { return DATE_FORMAT_ISO_8601.print(val); } + public static Long parseWithLocale(String val, String locale) { for (DateTimeFormatter f : DATE_TIME_FORMATS) { try {