我在Java中将字符串转换为Date,但是我遇到了问题它为结果Date添加了一些额外的分钟。
字符串格式为“yyyy-MM-dd HH:mm:ss.sss”,我创建了这个函数:
public static Date parseISO8601(String date) {
Date result = null;
try {
if (!TextUtils.isEmpty(date)) {
SimpleDateFormat dateFormat = new SimpleDateFormat(
ISO8601_DATE_FORMAT);
result = dateFormat.parse(date);
}
}
catch (Exception ex){
return null;
}
return result;
}
public static final String ISO8601_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.sss";
当我使用此字符串“2015-06-11 20:17:56.873”时,结果是“Thu Jun 11 20:31:33 CST 2015”。我是Java的新编码,我已经阅读了很多帖子,但对我而言,一切似乎都很正常,我不知道为什么会发生这种情况。
一些想法?
答案 0 :(得分:6)
请改为尝试:
yyyy-MM-dd HH:mm:ss.SSS
你使用's'而不是'S'代表millis。
答案 1 :(得分:4)
您想使用yyyy-MM-dd HH:mm:ss.SSS
,它使用" SSS" (毫秒)而不是" sss" (秒)。
格式为yyyy-MM-dd HH:mm:ss.sss
,您指定秒字段两次,因此您有效地尝试格式化日期时间" 2015-06-11 20:17:56哦等待 - I-mean-873-seconds",这就是为什么结果时间大约需要14分钟。
答案 2 :(得分:1)
将yyyy-MM-dd HH:mm:ss.sss
替换为yyyy-MM-dd HH:mm:ss.SSS
根据http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
s - >第二
S - >毫秒