繁体   English   中英

在其中使用GMT解析Java日期

[英]java date parsing with GMT in it

发布的日期String返回为:Sun,2012年11月18日格林尼治标准时间,我的convertDate方法返回我java.text.ParseException:无法解析的日期:“ Sun,2012年11月18日06:50:02 GMT”(在偏移量8处)。 我检查了资源,但找不到像这样的资源有很多帮助... 使用SimpleDateFormat将具有GMT时区的字符串解析为Date

如果您能对此有所了解,将不胜感激。 这是我的方法.. pubDate是星期日,2012年11月18日,格林威治标准时间

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表示完整的月份名称 )。 另外,由于您具有ISO 8601时区 (GMT),因此时区必须为z而不是Z

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM