我正试图解析一个日期并转换为一个Timestamp。
在Android 6上,它可以工作,但是在Android 7上,它会抛出一个异常。有谁能告诉我怎么修吗?
private long getCorrectDate(String date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'Z (z)");
Date parsedDate = null;
try {
Logger.e("PARSE DATE : "+date);
parsedDate = dateFormat.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
Logger.e("" + date + " TO " + timestamp.getTime());
return timestamp.getTime();
}java.text.ParseException:无法解析日期:“清华2018年2月15日10:55 GMT+0000 (UTC)”
发布于 2018-02-15 13:35:15
输入有一周和一个月的英文名称,所以您需要指定一个java.util.Locale。
如果您创建一个没有区域设置的SimpleDateFormat,它将使用设备的默认设置。只有在默认值已经是英语的情况下,您的代码才能工作,否则需要指定它:
// use Locale.US or Locale.ENGLISH, I think both will work
SimpleDateFormat dateFormat =
new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'Z (z)", Locale.US);实际上,如果您确定输入始终是英语的,请使用相应的区域设置,而不是依赖默认值。
https://stackoverflow.com/questions/48806948
复制相似问题