DateTimeFormat.forPattern("EEE, dd MMM yyyy HH:mm:ss ZZZZZ").withLocale(Locale.ENGLISH);
但它失败了:
Invalid format: "Wed, 03 Apr 2013 10:35:35 +0000" is malformed at "+0000"
我尝试用ZZZZZ
,z
和Z
替换ZZZ
,但没有变更。这些日期可以用这种方式解析吗?
答案 0 :(得分:7)
虽然您已经说过在格式模式中使用了一个Z
,但这可行:
DateTimeFormatter format =
DateTimeFormat.forPattern("EEE, dd MMM yyyy HH:mm:ss Z").withLocale(Locale.ENGLISH);
DateTime dateTime = format.parseDateTime("Wed, 27 Mar 2013 15:12:14 +0000");
解析此格式时,单个Z
时区字符就足够了,4无效:
Z时区偏移/ id区-0800; -08:00;美洲/洛杉矶
有关详情,请参阅the javadoc
答案 1 :(得分:0)
虽然接受的答案是正确的,但我从API获得的推特日期却有所不同。此备用解析器适用于该格式:
DateTimeFormatter format = DateTimeFormat.forPattern("EE MMM dd HH:mm:ss Z yyyy").withLocale(Locale.ENGLISH)
String input = "Sat Jan 14 01:50:54 +0000 2017"
DateTime dateTime = format.parseDateTime(input)