java 解析日期 t z_date - Java SimpleDateFormat(“yyyy-MM-dd'T'HH:mm:ss'Z'”)给出时区为IST...

TL;博士

其他答案在Java 8中已经过时了。

Instant // Represent a moment in UTC.

.parse( "2013-09-29T18:46:19Z" ) // Parse text in standard ISO 8601 format where the `Z` means UTC, pronounces “Zulu”.

.atZone( // Adjust from UTC to a time zone.

ZoneId.of( "Asia/Kolkata" )

) // Returns a `ZonedDateTime` object.

ISO 8601

您的字符串格式符合ISO 8601标准。 该标准定义了用于将各种日期时间值表示为文本的合理格式。

java.time

旧的ZonedDateTime/.Calendar和java.text.SimpleDateFormat类已被Java 8及更高版本中内置的java.time框架取代。 请参阅教程。 避免使用旧类,因为它们已被证明设计糟糕,令人困惑且麻烦。

旧类中的部分糟糕设计已经咬了你,ZonedDateTime方法在生成实际为UTC(GMT)的日期时间值的文本表示时应用JVM的当前默认时区; 善意但令人困惑。

在解析/生成日期时间值的文本表示时,java.time类默认使用ISO 8601格式。 因此无需指定解析模式。

ZonedDateTime是UTC时间轴上的一个时刻。

Instant instant = Instant.parse( "2013-09-29T18:46:19Z" );

您可以根据需要应用时区来生成ZonedDateTime对象。

ZoneId zoneId = ZoneId.of( "America/Montreal" );

ZonedDateTime zdt = instant.atZone( zoneId );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值