]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/utils/Globals.java
global method for format dates in ISO format (y-m-d)
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / utils / Globals.java
index 4562dbaec3f106ef5008283a74bee645785b5967..56a88ceca9fa70ef8d4f4de91f76c0a16df869eb 100644 (file)
@@ -38,6 +38,13 @@ public final class Globals {
                     return new SimpleDateFormat("yyyy/MM/dd", Locale.US);
                 }
             };
+    private static final ThreadLocal<SimpleDateFormat> isoDateFormatter =
+            new ThreadLocal<SimpleDateFormat>() {
+                @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