Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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
使用GMT进行java日期解析_Java_Parsing_Gmt - Fatal编程技术网

使用GMT进行java日期解析

使用GMT进行java日期解析,java,parsing,gmt,Java,Parsing,Gmt,发布的日期字符串返回为:Sun,2012年11月18日06:50:02 GMT,我的convertDate方法返回我java.text.ParseException:不可解析的日期:“Sun,2012年11月18日06:50:02 GMT”(偏移量8)。我查看了资源,但找不到像这样有用的资源 如果你能解释一下,我会非常感激的。这是我的方法。。 这里的发布日期是太阳,2012年11月18日06:50:02格林威治标准时间 public Date convertDate(String pubDate

发布的日期字符串返回为:Sun,2012年11月18日06:50:02 GMT,我的convertDate方法返回我java.text.ParseException:不可解析的日期:“Sun,2012年11月18日06:50:02 GMT”(偏移量8)。我查看了资源,但找不到像这样有用的资源

如果你能解释一下,我会非常感激的。这是我的方法。。 这里的发布日期是太阳,2012年11月18日06:50:02格林威治标准时间

public Date convertDate(String pubDate){

    SimpleDateFormat sdf =  new SimpleDateFormat("EEE, dd MM yyyy hh:mm:ss Z",Locale.US);
    Date newsDate = new GregorianCalendar(0, 0, 0).getTime();
        try{
            newsDate  = sdf.parse(pubDate);
        }catch(ParseException e){
            Log.d(Tag, "Exception Parsing date" + pubDate);
        }
    return null;
}

对月份字段使用
MMM

new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss Z",Locale.US);

修复后,不要忘记返回
newsDate
,因为您当前正在返回
null

以下是我做的一个小测试:

@Test
public void testDate() throws ParseException {

    String pubDate = "Sun, 18 Nov 2012 06:50:02 GMT";

    SimpleDateFormat sdf = new SimpleDateFormat(
            "EEE, dd MMM yyyy hh:mm:ss z", Locale.US);
    Date newsDate = new GregorianCalendar(0, 0, 0).getTime();

    newsDate = sdf.parse(pubDate);

}
您需要使用
MMM
设置月份,因为您使用的是月份的前三个字母(四个M表示月份)。此外,时区必须是
z
而不是
z
,因为您有一个(GMT)