【问题标题】:java date parsing with GMT in it带有GMT的java日期解析
【发布时间】:2012-11-06 15:16:47
【问题描述】:

发布的日期字符串返回为:Sun,2012 年 11 月 18 日 06:50:02 GMT,我的 convertDate 方法返回 java.text.ParseException: Unparseable date: "Sun, 18 Nov 2012 06:50:02 GMT”(偏移量 8)。我检查了资源,但找不到像这样有用的资源...Parsing a String with a GMT timezone to Date using SimpleDateFormat

如果您能对此有所了解,将不胜感激。这是我的方法.. 此处发布日期为星期日,2012 年 11 月 18 日 06:50:02 GMT

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;
}

【问题讨论】:

    标签: java parsing gmt


    【解决方案1】:

    在月份字段中使用MMM

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

    修复此问题后,请不要忘记返回 newsDate,因为您目前正在返回 null

    【讨论】:

      【解决方案2】:

      这是我做的一个小测试:

      @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 表示full month name)。此外,时区必须是 z 而不是 Z,因为您有一个 ISO 8601 Time zone (GMT)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多