SimpleDateFormat在将其转换为不同日期格式时更改日期

时间:2018-01-25 06:51:17

标签: java simpledateformat

我正在尝试将 YYYY-MM-dd HH:mm:ss 转换为 dd-MM-YYYY HH:mm:ss 格式。

String dateToConvert  = "2017-05-05 11:25:58";
SimpleDateFormat source = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); 
SimpleDateFormat target = new SimpleDateFormat("dd-MM-YYYY HH:mm:ss");
String newDate = target.format(source.parse(dateToConvert));

newDate变量值为" 01-01-2017 11:25:58" ,这与原始日期不同。 那么哪种方法对我有用?

2 个答案:

答案 0 :(得分:3)

年份的信很小y

这个

SimpleDateFormat source = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); 
SimpleDateFormat target = new SimpleDateFormat("dd-MM-YYYY HH:mm:ss");

应该是

SimpleDateFormat source = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
SimpleDateFormat target = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");

有关日后参考,请参阅java doc

答案 1 :(得分:1)

更好地使用java 8格式化程序以获得更好的性能:)

    String dateToConvert = "2017-05-05 11:25:58";
    DateTimeFormatter source = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    DateTimeFormatter target = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
    String newDate = target.format(source.parse(dateToConvert));