我在将以下格式的字符串转换为日期时遇到了一些困难。不断抛出 ParseException。
字符串:2015-11-14 17:29:16.543934
我已经环顾四周了,特别是这个链接:Java string to date conversion , 但没有任何运气。
这是我的方法目前的样子:
private Date parseTime(String input) {
// input format: 2015-11-14 17:29:16.543934
try {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssSSSSSS");
Date date = format.parse(input);
return date;
} catch (ParseException e) {
System.out.println("Could not parse time. ID: " + this.id);
}
return null;
}
编辑:
关于我在下面给出的答案(说明我在秒和毫秒之间漏掉了一个“.”)Jon Skeet 有一个很好的观点: “这仍然不会像您期望的那样工作。它会将您的输入视为具有 543934 毫秒......因此它将解析为 17:38:19。”
我实际上不需要这种级别的精度,所以我只是要切断毫秒,但如果有人知道如何保持小数点后 6 位的精度,我很想知道如何做。
最佳答案
您在字符串格式中遗漏了点:
ss.SSSSSS
必须是:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
关于Java String to Date,DateFormat 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36180649/