无法将 java.sql.Timestamp(yyyy-MM-dd HH:mm:ss.S) 正确格式化为字符串

Cannot correctly format a java.sql.Timestamp(yyyy-MM-dd HH:mm:ss.S) to string

我尝试格式化

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


评论更新:

如果你的约会确实如描述的那样,我提供的答案应该有效。正如 Jesper 在评论中提到的

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);