如何用Java解析ddMMMyyyy?
我试图用ddMMMyyyy格式解析日期,并将其转换为dd.MM.YYYY。有时我的输入字符串如下:3Mar2014或1Jan2014,但我想,这应该不是ddMMMyyyy格式的问题如何用Java解析ddMMMyyyy?,java,date,format,Java,Date,Format,我试图用ddMMMyyyy格式解析日期,并将其转换为dd.MM.YYYY。有时我的输入字符串如下:3Mar2014或1Jan2014,但我想,这应该不是ddMMMyyyy格式的问题 SimpleDateFormat formatter = new SimpleDateFormat("ddMMMyyyy"); SimpleDateFormat convert = new SimpleDateFormat("dd.MM.yyyy"); String to = ""; Dat
SimpleDateFormat formatter = new SimpleDateFormat("ddMMMyyyy");
SimpleDateFormat convert = new SimpleDateFormat("dd.MM.yyyy");
String to = "";
Date date;
try
{
date = formatter.parse(from);
to = convert.format(date);
}
catch (ParseException e)
{
System.out.println(e.getMessage() + " --- " + from);
}
我的代码总是说:
Unparseable date: "3Mar2014" --- 3Mar2014
有什么想法吗?问题在于模式
如果改为使用“dMMMyyyy”,它就像一个符咒,将语言环境更改为英语语言环境,例如
Locale usLocale = new Locale("en", "US");
Locale.setDefault(usLocale);
解决了这个问题
将模式更改为“dMMMyyyy”而不更改区域设置并不能解决问题。它还在说
Unparseable date: "5Oct2014"
将其更改为Mar以避免混淆检查您的
区域设置。它可能不是英语的,它是用Java8编写的。您使用的是什么版本?我使用的是java版本“1.6.0_65”,在这里运行良好;回答正确。但是也应该添加区域设置,以避免隐式地依赖JVM的当前默认区域设置,这可能会有所不同。