【发布时间】:2021-07-22 20:54:39
【问题描述】:
使用 java 我尝试使用 SimpleDateFormat 将当前日期格式化为时区
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss:SSSZ");
sdf.format(new Date());
这给了我结果:
2021-04-28T13:45:52:308+0300
我想用“Z”而不是“+”来获取时区格式
想要的结果:"2021-04-28T13:45:52:308Z03:00"
我将日期输出写入文件日志中,该文件将由用 Go 语言编写的 telegraf 插件解析,该插件期望带有以下格式的时区日期:json_time_format = "2006-01-02T15:04:05Z07:00"
有没有一种模式允许这样做?
【问题讨论】:
-
如果您至少使用 Java 8,请考虑使用 date-time API。
-
@Abra 即使你不是,它也被反向移植了。
-
这是旧代码
-
我建议你不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDateTime和DateTimeFormatter。如果您仍然需要重写遗留代码,请使用 java.time 重写它。