我有一个日期字符串

"20120514045300.0Z"

我试图弄清楚如何将其转换为以下格式
"2012-05-14-T045300.0Z"

您如何建议我应该解决它?

最佳答案

与其深入研究难以理解的字符串操作代码,不如将日期解析成一个体面的表示形式,然后根据该表示形式格式化输出。如果可能的话,我建议您使用一些现有的API。

这是一个基于SimpleDateFormat的解决方案。 (尽管它对0Z部分进行了硬编码。)

String input = "20120514045300.0Z";

DateFormat inputDF  = new SimpleDateFormat("yyyyMMddHHmmss'.0Z'");
DateFormat outputDF = new SimpleDateFormat("yyyy-MM-dd'-T'HHmmss.'0Z'");

Date date = inputDF.parse(input);
String output = outputDF.format(date);

System.out.println(output);  // Prints 2012-05-14-T045300.0Z as expected.

(从此处改编:How to get Date part from given String?。)

10-04 11:00