Java SimpleDateFormat返回null,但仅在第二次调用时返回

时间:2013-09-16 19:06:19

标签: java date calendar simpledateformat

public static void main(String[] args) {
    ParsePosition pp = new ParsePosition(0);
    SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
    formatter.setTimeZone(TimeZone.getTimeZone("America/New_York"));
    String datetoparse = "7/1/2003 00:02:53";
    Date date = formatter.parse(datetoparse, pp);
    System.out.println(date.toString());
    date = formatter.parse(datetoparse, pp);
    System.out.println(date.toString());
}

格式调用在第一次调用时返回正确的值。但为什么它在第二次调用时返回null(我在解析与第一次调用中相同的字符串)?

1 个答案:

答案 0 :(得分:5)

出于某种原因,您使用的是ParsePosition。第一个parse调用会将ParsePosition更新为超过解析中使用的日期。第二个parse调用无需解析。这是一个错误,and parse returns null

只需使用the inherited parse method without a ParsePosition