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

标签 java string timestamp

我尝试格式化

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/

相关文章:

从 1970-01-01 查找毫秒数的 Javascript 方法?

java - 当文件夹项为 20 时执行alertDialog

java - 与 ^.*(?=.*\\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&]).*$ 匹配的单词

java - 带有 Sentinel 的 Redisson 客户端抛出异常

java - 将数组值与相同的键组合

java - 保留大写/小写字符和空格的正则表达式?

Java RegEx - 如何防止一行特殊字符被另一个字符替换?

java - Java 中的字符串本地内存是什么?

java - 在Java中将日期转换为带时区的时间戳

mysql - 无法使用 LOAD DATA 将时间戳加载到 MySQL 表中