Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Joda Time解析Twitter日期_Java_Twitter_Jodatime_Date Parsing - Fatal编程技术网

Java 使用Joda Time解析Twitter日期

Java 使用Joda Time解析Twitter日期,java,twitter,jodatime,date-parsing,Java,Twitter,Jodatime,Date Parsing,推特给了我一个日期,比如“Wed,2013年3月27日15:12:14+0000”。 我正试图用以下方法解析它: 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" 我尝试用z、z和ZZZ替换ZZZ,但没有改

推特给了我一个日期,比如“Wed,2013年3月27日15:12:14+0000”。 我正试图用以下方法解析它:

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"

我尝试用
z
z
ZZZ
替换
ZZZ
,但没有改变。这些日期可以这样解析吗?

虽然您说过在格式模式中使用了单个
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; 美国/洛杉矶


有关更多信息,请参见

虽然公认的答案是正确的,但我从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)

注意:其他问题,似乎是问同样的事情,实际上是使用不同的格式。