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

标签 java date

我需要将 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/

相关文章:

java - Android服务类变量

java - RxJava2 flatMap 创建重复事件

php - 从字符串中删除时间戳

jQuery:时间函数输出错误的天数

ruby-on-rails - 在 Ruby on Rails 中,如何使用 "th"后缀格式化日期,如 "Sun Oct 5th"?

java - 在没有收集的情况下在 Java 中迭代 Spark DataFrame

java - 解析纬度/经度数组列表以获得最西纬度

java - 在JPA和存储库接口(interface)中获取实体类

java - 本地化 java.time 中 `MonthDay` 或 `YearMonth` 类中的字符串?

android - 如何在android中获取当前日期和当前日期的第7天?我想以图像给出的以下格式显示日期