X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Futils%2FGlobals.java;h=56a88ceca9fa70ef8d4f4de91f76c0a16df869eb;hp=4562dbaec3f106ef5008283a74bee645785b5967;hb=e58a4542d0054772b1939b3eeb1b97f1384c60e6;hpb=0a060dd111f51bdf4f7c804b11cd8aa7cbe00964 diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java b/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java index 4562dbae..56a88cec 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java @@ -38,6 +38,13 @@ public final class Globals { return new SimpleDateFormat("yyyy/MM/dd", Locale.US); } }; + private static final ThreadLocal isoDateFormatter = + new ThreadLocal() { + @Override + protected SimpleDateFormat initialValue() { + return new SimpleDateFormat("yyyy-MM-dd", Locale.US); + } + }; public static String[] monthNames; public static String developerEmail = "dam+mole-crash@ktnx.net"; private static Pattern reLedgerDate = @@ -53,7 +60,9 @@ public final class Globals { } public static Date parseLedgerDate(String dateString) throws ParseException { Matcher m = reLedgerDate.matcher(dateString); - if (!m.matches()) throw new ParseException(dateString, 0); + if (!m.matches()) throw new ParseException( + String.format("'%s' does not match expected pattern '%s'", dateString, + reLedgerDate.toString()), 0); String year = m.group(1); String month = m.group(2); @@ -73,7 +82,13 @@ public final class Globals { return dateFormatter.get().parse(toParse); } + public static Date parseIsoDate(String dateString) throws ParseException { + return isoDateFormatter.get().parse(dateString); + } public static String formatLedgerDate(Date date) { return dateFormatter.get().format(date); } + public static String formatIsoDate(Date date) { + return isoDateFormatter.get().format(date); + } } \ No newline at end of file