3

嗨,我有一个简单的日期格式

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

它像这样格式化日期

2014-04-23 13:15:59.390 

是否可以删除尾随的 0,除非数字不是 0?

2014-04-23 13:15:59.39

好的,我发现了我的问题

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 

给了我想要的东西,问题是我正在将它与来自数据库的日期字符串进行比较。

数据库从包含正确值的 timesamp 列中读取它,但我正在使用

resultSet.getString(i)

并且由于某种原因它会减少最后一个数字......所以我的问题应该是,为什么 resultSet.getString 在读取日期字段时会剪切最后一个字符?

4

3 回答 3

2

使用 String 方法修剪尾随零:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(date).replaceAll("0$", "");

要修剪最多 2 个尾随零:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(date).replaceAll("0?0$", "");
于 2014-04-23T13:32:59.880 回答
2

在结果字符串上,执行replaceFirst("[0]*$", "")

例如:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()).replaceFirst("[0]*$", "")
于 2014-04-23T13:37:30.213 回答
0

这可能是您遇到的特定于语言环境的问题。尝试这个:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.ENGLISH);
于 2014-04-23T13:30:48.687 回答