我有一个日期字符串
"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?。)