Java SimpleDataFormat().format()是否更改了时间戳值?

Java SimpleDataFormat().format()是否更改了时间戳值?,java,groovy,Java,Groovy,我正在将时间戳从“1999-02-18 11:30:00.0”转换为“1999-02-18 11:30:00”。很简单。因此,我使用以下方法: newForm = new SimpleDateFormat('yyyy-mm-dd hh:mm:ss').format(oldForm) println oldForm println newForm 但是,打印输出显示时间戳的值已更改 oldForm 1999-02-18 11:30:00.0 newForm 1999-30-18 11:30:00

我正在将时间戳从“1999-02-18 11:30:00.0”转换为“1999-02-18 11:30:00”。很简单。因此,我使用以下方法:

newForm = new SimpleDateFormat('yyyy-mm-dd hh:mm:ss').format(oldForm)
println oldForm
println newForm
但是,打印输出显示时间戳的值已更改

oldForm 1999-02-18 11:30:00.0
newForm 1999-30-18 11:30:00
这真让我发疯。这是虫子还是什么?还有别的办法吗?我真的不想剪线

你应该用(大写)
MM
一个月
mm
是分钟,这里是30


mm
不是月份。您应该这样做:

yyyy-MM-dd hh:mm:ss

嗯是分钟。MM是一个月。全部修复。

您使用的是“mm”而不是“mm”

嗯是几分钟

MM是一个月

另请查看此页面以了解更多详细信息


无论何时处理SimpleDateFormat,它都会帮助您

D'oh。。。真是个错误!非常感谢您的快速回复@杨璐如果这是你问题的答案,为什么不这样做呢?一旦你得到了正确的答案,最好是“接受”它,如果你觉得它有帮助的话,给它投一票。这就是它的工作方式。公平地说,我认为最早的正确答案应该得到接受。假设
oldForm
是一个日期,您可以使用Groovy执行
oldForm.format('yyyy-MM-dd hh:MM:ss')