Java-SimpleDataFormat-ParseException-Pattern似乎匹配
我编写了一个类,试图将对象转换为日期 对于字符串表示,它尝试通过搜索预定义日期格式模式与该字符串的匹配来确定日期格式。如果某个模式匹配,它将使用Java-SimpleDataFormat-ParseException-Pattern似乎匹配,java,Java,我编写了一个类,试图将对象转换为日期 对于字符串表示,它尝试通过搜索预定义日期格式模式与该字符串的匹配来确定日期格式。如果某个模式匹配,它将使用simpleDataFormat中的该模式来解析该字符串 我知道这种方法是不确定的,因为它会在1928年8月6日失败,在1928年8月6日,像d/M/yyyy和M/d/yyyy这样的多个模式会匹配 下面是引发ParseException的相关代码部分: // dateFormat is "d MMMM yyyy" SimpleDateFormat si
simpleDataFormat
中的该模式来解析该字符串
我知道这种方法是不确定的,因为它会在1928年8月6日失败,在1928年8月6日,像d/M/yyyy和M/d/yyyy这样的多个模式会匹配
下面是引发ParseException的相关代码部分:
// dateFormat is "d MMMM yyyy"
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
simpleDateFormat.setLenient(false);
// objectToConvert is "8 June 1982"
return simpleDateFormat.parse((String)objectToConvert);
java.text.ParseException: Unparseable date: "8 June 1982"
我不明白为什么会出现以下异常:
// dateFormat is "d MMMM yyyy"
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
simpleDateFormat.setLenient(false);
// objectToConvert is "8 June 1982"
return simpleDateFormat.parse((String)objectToConvert);
java.text.ParseException: Unparseable date: "8 June 1982"
致以最良好的祝愿,
Jens很可能您在不同的
地区
,其中六月的拼写不同(对我来说,在我的地区,它是Juni
)
试试这个:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d MMM yyyy", Locale.ENGLISH);
有趣的是,这在Java6中适用于我。亲爱的Aleksandr,你是对的。我相应地改变了问题。非常感谢你的提示。代码运行的服务器位于不同的
区域设置
。我更改了日期分析器的参数,以便调用者可以选择传递区域设置
。