gpt4 book ai didi

Java GET 返回日期为 13 位数字

转载 作者:行者123 更新时间:2023-12-04 00:05:13 24 4
gpt4 key购买 nike

我的 Web 应用程序以 13 位数字的形式返回日期,例如 1475166540000

如何将其格式化为要在 JSON 响应中返回的正确日期。在我的函数中,它只返回整个 DTO。

最佳答案

tl;博士

Instant.ofEpochMilli( 1_475_166_540_000L )
.toString()

或者……

Instant.ofEpochMilli( Long.parseLong( "1475166540000" ) )
.toString()

详情

Instant 表示 UTC 中的时刻,分辨率为纳秒。

该类可以从 1970 年 1970 年第一刻(UTC,1970-01-01T00:00Z)的纪元引用开始解析毫秒计数。

Instant instant = Instant.ofEpochMilli( 1_475_166_540_000L ) ;

顺便说一下,Instant.ofEpochSecond(mySeconds).

如果输入是String,解析成long

Instant instant = Instant.ofEpochMilli( Long.parseLong( "1475166540000" ) ) ;

在标准 ISO 8601 中生成字符串格式,调用 toString.

String output = instant.toString() ;

2016-09-29T16:29:00Z

末尾的Z是“Zulu”的缩写,意思是UTC。

How to format it into a proper date

没有“适当的日期”之类的东西。每种文化都有自己的文本显示日期时间值的方式。

要向用户显示本地化,请使用 DateTimeFormatter及其 ofLocalized… 方法。

String output = instant.atZone( ZoneId.of( "Africa/Tunis" ) ).format( DateTimeFormatter.ofLocalizedDateTime​( FormatStyle.FULL ).withLocale( Locale.JAPAN ) ) ;  // Use Japanese formatting to display a moment in Tunisia wall-clock time.

2016年9月29日木曜日 17時29分00秒 中央ヨーロッパ標準時

对于 JSON 等系统之间的数据交换,仅使用标准 ISO 8601 格式。它们是实用的,旨在明确且易于机器解析,并且易于跨文化的人类阅读。 Java 内置的 java.time 类在解析/生成字符串时默认使用这些标准格式。所以不需要指定格式模式。

String output = instant.toString() ;

2016-09-29T16:29:00Z

Instant instant = Instant.parse( "2016-09-29T16:29:00Z" ) ;
long millisSinceEpoch = instant.toEpochMilli() ;

1475166540000

避免使用旧的日期时间类

切勿使用示例代码中出现的麻烦的 Date/Calendar 类。它们现在是遗留的,完全被 java.time 类所取代。

要与尚未更新到 java.time 的旧代码互操作,您可以来回转换。调用添加到旧类的新转换方法。

Date d = Date.from( instant ) ;  // Don’t do this unless forced to inter-operate with old code not yet updated to java.time classes.

Table of all date-time types in Java, both modern and legacy


关于java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧 legacy日期时间类,例如 java.util.Date , Calendar , & SimpleDateFormat .

要了解更多信息,请参阅 Oracle Tutorial .并在 Stack Overflow 上搜索许多示例和解释。规范为 JSR 310 .

Joda-Time项目,现在在 maintenance mode , 建议迁移到 java.time类。

您可以直接与您的数据库交换 java.time 对象。使用 JDBC driver符合 JDBC 4.2或更晚。不需要字符串,不需要 java.sql.* 类。 Hibernate 5 & JPA 2.2 支持 java.time

从哪里获取 java.time 类?

关于Java GET 返回日期为 13 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com