Java日期偏移格式问题?
我的日期格式是Java日期偏移格式问题?,java,Java,我的日期格式是yyyy-MM-dd'HH:MM:ss.SSSZ,它正在生成日期: 2013-10-08T12:14:39.721+0100 但我需要的日期是: 2013-10-08T12:14:39.721+01:00 哪种日期格式将生成带有冒号的偏移量?仅将其更改为该格式不起作用?或者您无法更改日期格式? 尝试: 它应该返回用冒号分隔的最后一部分 请参阅:您可以使用此格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'H
yyyy-MM-dd'HH:MM:ss.SSSZ
,它正在生成日期:
2013-10-08T12:14:39.721+0100
但我需要的日期是:
2013-10-08T12:14:39.721+01:00
哪种日期格式将生成带有冒号的偏移量?仅将其更改为该格式不起作用?或者您无法更改日期格式? 尝试: 它应该返回用冒号分隔的最后一部分
请参阅:您可以使用此格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
有关更多信息,请查看
p.S:-正如我的朋友@Thomas提到的,这只适用于Java 7及以上版本。如果您想使用实现,可以使用适用于JDK 7的。您还可以使用以下方法实现相同的功能 哪些输出
2013-10-08T20:36:19.802+09:00
tl;博士
2013-10-08T12:14:39.721+01:00
java.time
使用现代的java.time类取代麻烦的遗留日期时间类
所需的输出格式恰好是方法的默认格式
输出:2013-10-08T12:14:39.721+01:00
看这个
顺便说一句,根据我的经验,确实最好按照您在问题中提出的那样设置UTC偏移量的格式:使用冒号,填充零,同时使用小时和分钟。虽然标准和其他标准在技术上允许变化,但我发现一些库和协议只期望完全扩展的格式。因此,使用
+05:00
而不是+05
或+5:00
或+0500
这里有一个提示让我明白:这适用于Java7+。
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZZ");
String str = fmt.print(dt);
System.out.println(str);
2013-10-08T20:36:19.802+09:00
OffsetDateTime.parse( "2013-10-08T12:14:39.721+01:00" )
.toString()
OffsetDateTime odt = OffsetDateTime.parse( "2013-10-08T12:14:39.721+01:00" ) ;
String output = odt.toString() ;