更正日期字符串的日期格式,例如“2013-11-16T08:46:00.000-06:00”

时间:2013-12-03 15:09:52

标签: java android parsing datetime simpledateformat

INPUT:

SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
SimpleDateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

String unformattedDate = "2013-11-16T08:46:00.000-06:00";

String formattedDate = outFormat.format(inFormat.parse(unformattedDate ));

超出输出:

formattedDate = "2013-11-16T20:16:00.000Z"

期望的输出:

formattedDate = "2013-11-16T08:46:00.000Z"

任何人都可以了解转换后为什么会出现这种差异以及如何获得所需的输出?

我认为我的inFormat格式化日期unformattedDate不正确。

1 个答案:

答案 0 :(得分:1)

喜欢这个

 String unformattedDate = "2013-11-16T08:46:00.000-06:00";
 Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(unformattedDate);
 String formattedDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(date);
 System.out.println(formattedDate);

<强>输出

2013-11-16T08:46:00.000Z