繁体   English   中英

null SimpleDateFormat.parse()分配的日期

[英]null Date assigned by SimpleDateFormat.parse()

我讨厌发布另一个SimpleDateFormat问题,但我无法在谷歌或其他线程中找到我的答案。 我的代码如下,注释表明问题。

// The dateString format is "Thu Jul 19 00:04:11 +0000 2012". I confirmed that there
// is no preceding or trailing white space.
public static GregorianCalendar stringToDate(String dateString) {

    GregorianCalendar calendar = new GregorianCalendar();

    ParsePosition pos = new ParsePosition(0);

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE MMM d H:mm:ss Z yyyy");

    Date date = simpleDateFormat.parse(dateString, pos);


    // 'Unknown Source' error thrown by setTime() as date is ultimately null.
    calendar.setTime(date);

    return calendar;

}

我已经确认我的dateString参数正确,我的位置对象从0开始,我已经多次回顾了SimpleDateFormat对http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat .html 它看起来对我来说,但我仍然测试了'd'和'H'的各种排列。 我能想到的唯一一件事就是使用这个我缺少的一些细微差别,或者我离开了基地。

这个编译(javac 1.6.0_33),但是当运行时(java版本“1.6.0_33”)它甚至不会处理传递给它的第一个dateString值。 我正在运行Windows 7 64位,日文版。

非常感谢任何帮助。

如果您计算机上的当前区域设置是日语(这种情况很可能就是这种情况),那么SimpleDateFormat将采用默认区域设置(日语)并尝试使用它解析日期。

如果日期字符串始终为英语,则应在SimpleDateFormat构造函数中指定Locale.US

暂无
暂无

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

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