diff options
author | Martin Fietz <marf@hadiko-99-4.hadiko.uni-karlsruhe.de> | 2015-04-18 13:12:01 +0200 |
---|---|---|
committer | Martin Fietz <Martin.Fietz@gmail.com> | 2015-05-14 11:29:58 +0200 |
commit | ed76fffc30d9ca2e180e56dc5a6f23f49c95cb53 (patch) | |
tree | c5632ad41d5fe46152a62a0f77b033c2ee0f10e8 /core/src/main | |
parent | 73c4dfc04db814e6f2b4b2234150a404c2ec6cfa (diff) | |
download | AntennaPod-ed76fffc30d9ca2e180e56dc5a6f23f49c95cb53.zip |
Improve patterns
Hyphen can be used as a separator between day, month and date, but also
to indicate a negative time zone.
Diffstat (limited to 'core/src/main')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java | 59 |
1 files changed, 15 insertions, 44 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java index fa41fb664..b6df2dc85 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java @@ -13,45 +13,14 @@ import java.util.Locale; * Parses several date formats. */ public class DateUtils { - private static final String TAG = "DateUtils"; + + private static final String TAG = "DateUtils"; - private static final String[] RFC822DATES = {"dd MMM yy HH:mm:ss Z", - "dd MMM yy HH:mm Z"}; - - /** - * RFC 3339 date format for UTC dates. - */ - public static final String RFC3339UTC = "yyyy-MM-dd'T'HH:mm:ss'Z'"; - - /** - * RFC 3339 date format for localtime dates with offset. - */ - public static final String RFC3339LOCAL = "yyyy-MM-dd'T'HH:mm:ssZ"; - - public static final String ISO8601_SHORT = "yyyy-MM-dd"; - - private static ThreadLocal<SimpleDateFormat> RFC822Formatter = new ThreadLocal<SimpleDateFormat>() { - @Override - protected SimpleDateFormat initialValue() { - return new SimpleDateFormat("dd MMM yy HH:mm:ss Z", Locale.US); - } - - }; - - private static ThreadLocal<SimpleDateFormat> RFC3339Formatter = new ThreadLocal<SimpleDateFormat>() { - @Override - protected SimpleDateFormat initialValue() { - return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US); - } - - }; - - public static Date parse(String date) { - if(date == null) { + public static Date parse(final String input) { + if(input == null) { throw new IllegalArgumentException("Date most not be null"); } - date = date.replace('/', ' '); - date = date.replace('-', ' '); + String date = input.replace('/', '-'); if(date.contains(".")) { int start = date.indexOf('.'); int current = start+1; @@ -77,15 +46,16 @@ public class DateUtils { "dd MMM yy HH:mm:ss Z", "dd MMM yy HH:mm Z", "EEE, dd MMM yyyy HH:mm:ss Z", + "EEE, dd MMMM yyyy HH:mm:ss Z", "EEEE, dd MMM yy HH:mm:ss Z", "EEE MMM d HH:mm:ss yyyy", - "yyyy MM dd'T'HH:mm:ss", - "yyyy MM dd'T'HH:mm:ss.SSS", - "yyyy MM dd'T'HH:mm:ss.SSS Z", - "yyyy MM dd'T'HH:mm:ssZ", - "yyyy MM dd'T'HH:mm:ss'Z'", - "yyyy MM ddZ", - "yyyy MM dd" + "yyyy-MM-dd'T'HH:mm:ss", + "yyyy-MM-dd'T'HH:mm:ss.SSS", + "yyyy-MM-dd'T'HH:mm:ss.SSS Z", + "yyyy-MM-dd'T'HH:mm:ssZ", + "yyyy-MM-dd'T'HH:mm:ss'Z'", + "yyyy-MM-ddZ", + "yyyy-MM-dd" }; SimpleDateFormat parser = new SimpleDateFormat("", Locale.US); parser.setLenient(false); @@ -98,7 +68,8 @@ public class DateUtils { return result; } } - Log.d(TAG, "Could not parse '" + date + "'"); + + Log.d(TAG, "Could not parse date string \"" + input + "\""); return null; } |