我有以下字符串:dateToParse = "Fri May 16 23:59:59 BRT 2014"
,我想使用 DateFormat 解析它:
DateFormat dateFormat = new SimpleDateFormat(pattern, Locale.getDefault());
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Sao_Paulo"));
cal.setTime(dateFormat.parse(dateToParse));
现在我正在尝试使用 pattern = "EEE MMM dd HH:mm:ss z yyyy"
,但出现此异常:
java.text.ParseException: Unparseable date: "Fri May 16 23:59:59 BRT 2014" (at offset 0)
我不知道这个模式有什么问题,特别是在索引 0 处……知道我错过了什么吗?谢谢。
[编辑] 所以问题的一部分是我正在使用 Locale.getDefault(),所以可能试图用葡萄牙语的 dateFormat 解析英语日期......使用正确的 Locale,我仍然得到 ParseException,但这次在偏移量 20 ,这意味着解析时区时出现问题(在我的例子中是“BRT”)...
最佳答案
这可能是因为语言环境。
尝试改变
Locale.getDefault()
到
Locale.ENGLISH
像这样
String date_ = "Fri May 16 23:59:59 BRT 2014";
DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
Calendar date = Calendar.getInstance(TimeZone.getTimeZone("America/Sao_Paulo"));
dateFormat.setCalendar(date);
try {
date.setTime(dateFormat.parse(date_));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
关于java - ParseException - 无法找出正确的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914287/