我有点难以将下面格式的字符串转换为日期。一直抛出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位小数的精度,我会很感兴趣。
java.time
包)或ThreetenBP(类似但是适用于Java-6+7的后移版本)或我的Time4J库来保持微秒精度。其他库和旧版JDK仅提供毫秒级精度。 - Meno Hochschild