我正在使用的功能是
public static String getFormatedDate(String dateVal) {
String tempDate = null;
Locale systemLocale = Locale.getDefault();
try {
SimpleDateFormat formatter = new SimpleDateFormat("MMM dd, yyyy",
systemLocale);
Date date = (Date) formatter.parse(dateVal);
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
tempDate = sdf.format(date);
} catch (Exception e) {
ApplicationLog.log(TAG, e);
}
return tempDate;
}
在许多设备中,此功能正常工作,但在其中一个设备中,在解析日期时会引发异常。此异常是否与Locale.getDefault()
有关?如果是,我应该做些什么改变?谢谢。
调用函数
Utilities.getFormatedDate(date);
例外是......
Utilities:java.text.ParseException: Unparseable date: "Jan 06, 2017" (at offset 0)
at java.text.DateFormat.parse(DateFormat.java:579)
答案 0 :(得分:0)
您尝试从依赖于语言环境的格式"MMM dd, yyyy"
解析日期并设置系统区域设置。尝试传递符合您格式的语言环境。例如Locale.US
。改变你的方法,
public static String getFormatedDate(String dateVal) {
String tempDate = null;
try {
SimpleDateFormat formatter = new SimpleDateFormat("MMM dd, yyyy",
Locale.US);
Date date = (Date) formatter.parse(dateVal);
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
tempDate = sdf.format(date);
} catch (Exception e) {
ApplicationLog.log(TAG, e);
}
return tempDate;
}