有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

日期Java SimpleDataFormat解析问题

我正试图使用SimpleDataFormat类解析从Java网站中获得的日期字符串,但出现了一些问题,我不知道为什么

日期字符串采用以下语法:

"13:37 - Tue 28-Jun-2011"

所以我试着做了以下几点:

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy");
ParsePosition pos = new ParsePosition(0);   
Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011", pos);

正如我之前所说,这是行不通的;当我打印时

System.out.println(pos.getErrorIndex());

它打印“8”,我认为这意味着错误在EEE部分的某个地方。我尝试过不同的排列方式,但没有效果。我做错了什么

谢谢

强积金


共 (3) 个答案

  1. # 1 楼答案

    我发现了问题:我不知道我必须为日期格式设置区域设置

    SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy", Locale.ENGLISH);
    

    现在可以了

  2. # 2 楼答案

    这对我来说很好

    SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy");
    ParsePosition pos = new ParsePosition(0);   
    Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011", pos);
    
    System.out.println(pos.getErrorIndex());
    System.out.println(d);
    

    输出-

    -1
    Tue Jun 28 13:37:00 EDT 2011
    
  3. # 3 楼答案

    如果你试图解析日期,这将起作用。我不知道你想用ParsePosition做什么

       SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy");
       Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011");
       System.out.println(d);