栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将时间字符串转换为ISO 8601格式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将时间字符串转换为ISO 8601格式

tl; dr

Instant.parse( "2015-08-20T08:26:21.000Z" )       .toString()

2015-08-20T08:26:21Z

日期时间格式器

如果您只想消除

.000
,则使用日期时间对象解析您的输入字符串值,然后以另一种格式生成该日期时间值的新字符串表示形式。

ISO 8601

顺便说一句,如果这是您的目标,那么问题的标题就没有意义,因为第一句中提到的两个字符串都是有效的ISO
8601
格式的字符串。

  • 2015-08-20T08:26:21.000Z
  • 2015-08-20T08:26:21Z

java.time

Java
8和更高版本具有新的java.time包。这些新类取代了旧的java.util.Date/.Calendar和java.text.SimpleDateFormat类。那些旧班级令人困惑,麻烦和有缺陷。

瞬间

如果您只需要UTC时区,则可以使用

Instant
该类。此类表示时间轴上的一个点,而与任何特定时区(基本上是UTC)无关。

DateTimeFormatter.ISO_INSTANT

调用Instant会

toString
使用
DateTimeFormatter.ISO_INSTANT
格式化程序实例生成日期时间值的String表示形式。此格式化程序会自动调整小数秒。如果该值具有整秒,则不会生成小数位(显然是问题所要的)。对于小数秒,根据需要,数字以3、6或9的组出现,以表示高达纳秒分辨率的值。注意:此格式可能超过ISO
8601的毫秒限制(小数点后3位)。

范例程式码

这是Java 8 Update 51中的一些示例代码。

String output = Instant.parse( "2015-08-20T08:26:21.000Z" ).toString( );System.out.println("output: " + output );

输出:2015-08-20T08:26:21Z

更改为小数秒

.08

String output = Instant.parse( "2015-08-20T08:26:21.08Z" ).toString( );

输出:2015-08-20T08:26:21.080Z

如果对除UTC以外的任何时区感兴趣,请从中创建一个

ZonedDateTime
对象
Instant

ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , ZoneId.of( "America/Montreal" ) ) ;


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号