我有一些不同的日期格式要解析,但我無法通過SimpleDateFormat
識別它們。任何人可以幫助我找到模式該日期:某些字符串的DateFormat模式
- 1892年6月
- 9 1915年
- 月335
- 1768年2月12日
和
-
五月
- 9月23日63 bc
- 8月19日的廣告14
感謝
我有一些不同的日期格式要解析,但我無法通過SimpleDateFormat
識別它們。任何人可以幫助我找到模式該日期:某些字符串的DateFormat模式
和
感謝
您只需提供您希望您的日期可以被解析並通過它們運行,找到第一個匹配的模式的可能性。
在這裏,你可以找到每一個創建的日期格式有很大發電機你能想象 http://www.fileformat.info/tip/java/simpledateformat.htm
例如你的第一個例子都是用dd MMMM yyyy生成的;)
這不回答如何在Java中執行此操作 – mprabhat
您只需要將生成的格式轉換爲SimpleDateFormat() – nullpointr
就沒有將bc轉換爲 – mprabhat
Joda通常更好,如果你必須使用多種格式進行解析。例如,
private static DateTimeFormatter dateFormatter;
String[] validDateFormats = new String[] { "dd-MMM-yyyy HH:mm:ss",
"yyyy-MM-dd HH:mm:ss.SSS" };
DateTimeParser[] parsers = new DateTimeParser[validDateFormats.length];
for (int i = 0; i < validDateFormats.length; ++i) {
parsers[i] = DateTimeFormat.forPattern(validDateFormats[i])
.getParser();
}
dateFormatter = new DateTimeFormatterBuilder().append(null, parsers)
.toFormatter().withZone(DateTimeZone.UTC);
現在這個dateFormatter將正確解析,如果輸入相匹配的任何格式:
inputDate = dateFormatter.parseDateTime(dateStr);
DateTimeFormatter outputFormat = DateTimeFormat
.forPattern("yyyy/MM/dd");
String outputString = inputDate.toString(outputFormat);
格式字符串可以從這裏擡頭:http://joda-time.sourceforge.net/api-release/org/joda/time/format/DateTimeFormat.html
嘗試這些
27日,2012:
System.out.println(new SimpleDateFormat("d-MMM-YYYY").format(new Date()));
27-05-2012:
System.out.println(new SimpleDateFormat("d-MM-YYYY").format(new Date()));
27-05-12:
System.out.println(new SimpleDateFormat("dd-MM-YY").format(new Date()));
http://stackoverflow.com/q/3850784/1140748 –
第一次我遇到一個問題,談到轉換BC時間指定的時間+1 – mprabhat
好吧,他們都不簡單日期格式1892年7月6日將是像「d MMMM yyyy」。你很樂意與BC一起玩,並且是1768-02-12 12月2日或12月2日 –