Java SimpleDateFormat时区偏移量,分钟用冒号分隔
如何使用SimpleDateFormat
将日期格式化为2012-11-25T23:50:56.193+01:00
如果我使用Z
格式如下
yyyy-MM-dd'T'hh:mm:ss.SSSZ
然后就出现了
2013-03-06T11:49:05.490+0100
你可以在下面搜索框中键入要查询的问题!
如何使用SimpleDateFormat
将日期格式化为2012-11-25T23:50:56.193+01:00
如果我使用Z
格式如下
yyyy-MM-dd'T'hh:mm:ss.SSSZ
然后就出现了
2013-03-06T11:49:05.490+0100
# 1 楼答案
您可以使用Java7(
yyyy-MM-dd'T'HH:mm:ss.SSSXXX
)中的SimpleDateFormat,或者使用Joda的DateTimeFormat(yyyy-MM-dd'T'HH:mm:ss.SSSZZ
)将时区偏移格式化为+01:00
# 2 楼答案
以下是2017年的答案。如果有任何方法可以(确实有),那么就把过时的类} 中使用现代且更方便的类。特别是,所需的格式
SimpleDateFormat
扔掉,在^{2012-11-25T23:50:56.193+01:00
符合ISO-8601,因此新的类是现成的,只需使用OffsetDateTime.toString()
:这印的是
不过,有一件事你可能不想知道,它在几秒钟内打印出的3个小数组的数量与打印
OffsetDateTime
对象的精度一样多。显然,在我的电脑上,“现在”的精度是毫秒(秒加三个小数)例如,如果您有一个老式的
Date
对象,它是通过调用某个遗留方法获得的,我建议您首先将其转换为Instant
,这是一个现代类。在此基础上,您可以根据自己的需求轻松进行其他转换:我真的做了很多必要的转换
atZone(ZoneId.systemDefault())
产生了一个ZonedDateTime
,它的toString()
并不总是给你你想要的格式;但它可以很容易地格式化为: