首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以微秒精度转换为字符串的java.sql.Timestamp

以微秒精度转换为字符串的java.sql.Timestamp
EN

Stack Overflow用户
提问于 2013-12-24 01:37:47
回答 1查看 17.7K关注 0票数 3

我正在将数据库中的时间戳列读取到java.sql.Timestamp对象中。然后,我希望将时间戳的值转换为字符串对象,但保持微秒精度。调用toString()方法使我更接近,但它似乎在微秒内丢失了尾随的零。如果时间戳以非零数字结束,则一切正常。

示例:

代码语言:javascript
复制
SimpleDateFormat outDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
String s = "2005-02-25 11:50:11.579410";
java.sql.Timestamp ts = java.sql.Timestamp.valueOf(s);
String out = ts.toString(); // This returns 2005-02-25 11:50:11.57941
out = outDateFormat.format(ts); // This returns 2005-02-25 11:50:11.000579

我真的很期待打印2005-02-25 11:50:11.579410。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-24 01:54:50

您可以使用时间戳的getNanos()-methode。

代码语言:javascript
复制
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.");
String s = "2005-02-25 11:50:11.579410";
java.sql.Timestamp ts = java.sql.Timestamp.valueOf(s);
int microFraction = ts.getNanos() / 1000;

StringBuilder sb = new StringBuilder(fmt.format(ts));
String tail = String.valueOf(microFraction);
for (int i = 0; i < 6 - tail.length(); i++) {
    sb.append('0');
}
sb.append(tail);
System.out.println(sb.toString());
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20748449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档