谁能告诉我,我们如何在 Java yyyy-MM-dd'T'HH:mm:ss.SSSz
格式转换为 yyyy-MM-dd-HH.mm.ss.SSSSSS
格式,其中输入和输出日期都应为字符串。
我使用了 apache DateFormatUtils
但这并没有在输出中给出毫秒数。
原文由 javaguy 发布,翻译遵循 CC BY-SA 4.0 许可协议
谁能告诉我,我们如何在 Java yyyy-MM-dd'T'HH:mm:ss.SSSz
格式转换为 yyyy-MM-dd-HH.mm.ss.SSSSSS
格式,其中输入和输出日期都应为字符串。
我使用了 apache DateFormatUtils
但这并没有在输出中给出毫秒数。
原文由 javaguy 发布,翻译遵循 CC BY-SA 4.0 许可协议
SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSSSSS");
SimpleDateFormat s2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz");
Date d= s1.parse( "2015-11-11-02.01.11.000001" );
String str= s2.format( d);
System.out.println(str);
这使用 SimpleDateFormat s1 将字符串日期解析为 Date 项目。然后它使用第二个 SimpleDateFormat 将其解析为所需的形式。
原文由 sguan 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答6.4k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.9k 阅读
2 回答1.4k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
Java 8+
您还可以 在 Java 8 中使用较新的 Time API ,例如…
哪些输出…
这使您更加负责管理时区,这通常是更好的解决方案
而且因为在 Java 8 API 中时区之间的转换让我很头疼(缺乏经验 :P)
哪些输出…
仅供参考:我认为您的输入使用的是纳秒/微秒而不是毫秒(一秒钟只有 1000 毫秒)。
SimpleDateFormat
does not support nano/micro seconds, butDateTimeFormatter
does, you’d have to use then
pattern,yyyy-MM-dd-HH.mm.ss.nnnnnn
for exampleJava 7 及以下
基本答案是,使用
SimpleDateFormat
….哪些输出…
这里的问题是,您可能会跨不同时区进行转换,在这种情况下,您可以使用类似…
哪个输出
或者两者的组合,如果你想转换到不同的时区。
但是,就个人而言,我会使用 Joda-Time ,但这就是我