public static long stringToMillis(String str) { // try to be smart and guess the date format if (isAllDigits(str)) { if (str.length() == 8 && isInputFormatDate(str, COMPACT_DATE_PATTERN)) //TODO: might be prolematic if an actual ts happends to be 8 digits, e.g. 1970-01-01 10:00:01.123 return stringToDate(str, COMPACT_DATE_PATTERN).getTime(); else if (str.length() == 10 && isInputFormatDate(str, YYYYMMDDHH)) return stringToDate(str, YYYYMMDDHH).getTime(); else if (str.length() == 12 && isInputFormatDate(str, YYYYMMDDHHMM)) return stringToDate(str, YYYYMMDDHHMM).getTime(); else if (str.length() == 14 && isInputFormatDate(str, YYYYMMDDHHMMSS)) return stringToDate(str, YYYYMMDDHHMMSS).getTime(); else return Long.parseLong(str); } else if (str.length() == 10) { return stringToDate(str, DEFAULT_DATE_PATTERN).getTime(); } else if (str.length() == 13) { return stringToDate(str, YYYY_MM_DD_HH).getTime(); } else if (str.length() == 16) { return stringToDate(str, YYYY_MM_DD_HH_MM).getTime(); } else if (str.length() == 19) { return stringToDate(str, DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS).getTime(); } else if (str.length() > 19) { return stringToDate(str, DEFAULT_DATETIME_PATTERN_WITH_MILLISECONDS).getTime(); } else { throw new IllegalArgumentException("there is no valid date pattern for:" + str); } }
public static long stringToMillis(String str) { // try to be smart and guess the date format if (isAllDigits(str)) { if (str.length() == 8 && isInputFormatDate(str, COMPACT_DATE_PATTERN)) //TODO: might be prolematic if an actual ts happends to be 8 digits, e.g. 1970-01-01 10:00:01.123 return stringToDate(str, COMPACT_DATE_PATTERN).getTime(); else if (str.length() == 10 && isInputFormatDate(str, YYYYMMDDHH)) return stringToDate(str, YYYYMMDDHH).getTime(); else if (str.length() == 12 && isInputFormatDate(str, YYYYMMDDHHMM)) return stringToDate(str, YYYYMMDDHHMM).getTime(); else if (str.length() == 14 && isInputFormatDate(str, YYYYMMDDHHMMSS)) return stringToDate(str, YYYYMMDDHHMMSS).getTime(); else return Long.parseLong(str); } else if (str.length() == 10) { return stringToDate(str, DEFAULT_DATE_PATTERN).getTime(); } else if (str.length() == 13) { return stringToDate(str, YYYY_MM_DD_HH).getTime(); } else if (str.length() == 16) { return stringToDate(str, YYYY_MM_DD_HH_MM).getTime(); } else if (str.length() == 19) { return stringToDate(str, DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS).getTime(); } else if (str.length() > 19) { return stringToDate(str, DEFAULT_DATETIME_PATTERN_WITH_MILLISECONDS).getTime(); } else { throw new IllegalArgumentException("there is no valid date pattern for:" + str); } }