在 java 中将日期格式化为特定格式的字符串时时间会发生变化

Time gets changed when formatting date to string in a particular format in java

我有一个值为 "Sat Nov 14 00:00:00 GMT+05:30 2015" 的日期。我需要将此变量转换为格式为 "yyyy-MM-dd hh:mm:ss" 的字符串日期。为此,我使用了以下代码,

SimpleDateFormat dtf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date=dtf.format(reDate);

其中 reDate 的值为 "Sat Nov 14 00:00:00 GMT+05:30 2015"。但转换后我得到的值为“2015-11-14 12:00:00”。时间“00:00:00”更改为“ 12:00:00”。这是怎么回事?我需要在 conversion.That 之后得到准确的时间,结果是“2015-11-14 00:00:00”。该怎么做?请帮我解决这个问题。

您应该使用 HH 而不是前面提到的 hh here 例如:

SimpleDateFormat dtf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date=dtf.format(reDate);