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

486*_*-66 0 java calendar date 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());
}
Run Code Online (Sandbox Code Playgroud)

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

rge*_*man 5

出于某种原因,你正在使用ParsePosition.第一个parse调用更新ParsePosition超过解析中使用的日期.第二个parse调用无需解析.这是一个错误,parse返回null.

只需使用没有的继承parse方法ParsePosition.