当前位置:   article > 正文

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

instant转字符串去掉t

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的试验场。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/572145
推荐阅读
相关标签
  

闽ICP备14008679号