Java SimpleDateFormat削减了SSS的0位数字

时间:2014-04-23 13:20:12

标签: java simpledateformat trailing

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

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

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

数据库从timeamp列中读取它,其中包含正确的值,但我用

读取它
resultSet.getString(i)

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

3 个答案:

答案 0 :(得分: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$", "");

答案 1 :(得分:2)

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

例如:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()).replaceFirst("[0]*$", "")

答案 2 :(得分:0)

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

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