java 字符串转utc时间_java - 如何转换UTC日期字符串并删除Java中的T和Z? - 堆栈内存溢出...

TL;博士

Instant.parse( "2018-05-23T23:18:31.000Z" ) // Parse this String in standard ISO 8601 format as a `Instant`, a point on the timeline in UTC. The `Z` means UTC.

.atOffset( ZoneOffset.UTC ) // Change from `Instant` to the more flexible `OffsetDateTime`.

.format( // Generate a String representing the value of this `OffsetDateTime` object.

DateTimeFormatter.ofPattern( "uuuu-MM-dd HH:mm:ss" ) // Specify a formatting pattern as desired.

) // Returns a `String` object.

2018-05-23 23:18:31

ISO 8601

您的输入字符串采用标准ISO 8601格式。

在解析/生成字符串时, java.time类默认使用这些标准格式。

T将年 - 月 - 日部分与小时 - 分 - 秒分开。 Z的发音为Zulu ,表示UTC 。

java.time

您使用的是几年前由java.time类取代的麻烦的旧日期时间类。 Apache DateUtils也不再需要,因为您也可以在java.time中找到它的功能。

将输入字符串解析为Instant对象。 Instant类表示UTC时间轴上的一个时刻,分辨率为纳秒 (最多九(9)位小数)。

String input = "2018-05-23T23:18:31.000Z" ;

Instant instant = Instant.parse( input ) ;

要以另一种格式生成字符串,我们需要一个更灵活的对象。 Instant类是一个基本的构建块。 我们s convert it to a OffsetDateTime`,使用UTC本身作为指定的UTC-offset。

OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ;

定义格式模式以匹配所需的输出。

DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd HH:mm:ss" ) ;

String output = odt.format( f ) ;

提示:考虑使用DateTimeFormatter::ofLocalized…方法自动本地化每个Locale的String生成,而不是硬编码格式化模式。

关于java.time

要了解更多信息,请参阅Oracle教程 。 并搜索Stack Overflow以获取许多示例和解释。

您可以直接与数据库交换java.time对象。 不需要字符串,不需要java.sql.*类。

从哪里获取java.time类?

内置。

带有捆绑实现的标准Java API的一部分。

Java 9增加了一些小功能和修复。

更高版本的Android捆绑java.time类的实现。

ThreeTen-Extra项目使用其他类扩展了java.time。 该项目是未来可能添加到java.time的试验场。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值