gpt4 book ai didi

java - 如何在Java中向Date对象添加当前时间戳?

转载 作者:行者123 更新时间:2023-11-30 06:03:55 25 4
gpt4 key购买 nike

我需要将 Date 对象传递到我的 API 正在调用的服务中。我有 Date 的年、月、日信息,但还需要时间戳。该服务期望采用以下格式:

<date>2015-04-01T00:00:00-05:00</date>

如何向日期添加一些内容以获得这种格式?

最佳答案

切勿使用java.util.Date。被java.time.Instant取代。

获取您的日期部分。

LocalDate ld = LocalDate.of( 2015 , 4 , 1 ) ;

或者使用可读的Month枚举。

LocalDate ld = LocalDate.of( 2015 , Month.APRIL , 1 ) ;

获取一天中某个特定时区开始的时间。不要假设一天从 00:00:00 开始,可能是其他时间,例如 01:00:00。让 java.time 为您解决这个问题。

ZoneId z = ZoneId.of( "America/Montreal" ) ;
ZonedDateTime zdt = ld.atStartOfDay( z ) ;

以您所需的格式(标准 ISO 8601 格式)生成字符串。

DateTimeFormatter f = DateTimeFormatter.ISO_OFFSET_DATE_TIME ;
String output = zdt.format( f ) ;

要查看 UTC 时刻,请提取即时

Instant instant = zdt.toInstant() ;

转化

如果您必须与尚未更新java.time的旧代码进行互操作,您可以调用添加到旧类中的新转换方法。其中包括Date::from( Instant )

java.util.Date d = java.util.Date.from( instant ) ;

往另一个方向走。

Instant instant = d.toInstant() ;

返回 UTC 以外的时区。

ZonedDateTime zdt = instant.atZone( ZoneId.of( "Pacific/Auckland" ) ) ;  // Same moment, different wall-clock time. 

关于java - 如何在Java中向Date对象添加当前时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50955235/

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