我尝试格式化
date = 2015-05-07 10:12:14.000243
至 等效字符串:
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").format(date);
但是我得到了错误的值:
2015-05-07 10:12:14.0
你能帮我吗? 谢谢。
最佳答案
如果您想获得确切的日期,您需要适当的毫秒位数(您刚刚使用了 1 - S)。
用 6 位数字表示毫秒:
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS").format(date);
对于新日期,输出将为:
2015-05-18 12:17:56.000501
了解更多关于 SimpleDateFormat's Date and Time pattern
<小时/>更新评论:
如果您的约会确实按照描述的方式进行,那么我提供的答案应该有效。正如杰斯珀在评论中提到的
Beware that not all databases store dates with millisecond precision
下面我使用您提供的确切日期创建了一个新的 Date 对象。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
Date date1 = sdf.parse("2015-05-07 10:12:14.000243");
当您打印出该值时,您将按照您想要的方式获得它:
sdf.format(date1);
关于java - 无法将 java.sql.Timestamp(yyyy-MM-dd HH :mm:ss. S) 正确格式化为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299031/