如何获取格式为2019101620000583的当前日期时间?

我是Java新手。我正在尝试以长格式存储当前日期时间,例如2019110820000583。

我尝试使用System.currentTimeMillis(),但没有给出日期和时间的总和。它给我的结果像1573205716048

tsqaxdh1984 回答:如何获取格式为2019101620000583的当前日期时间?

java.time

在UTC中获取当前时刻。

OffsetDateTime odt = OffsetDateTime.now( ZoneOffset.UTC ) ;

为所需的输出定义格式模式。

DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuuMMddHHmmss" ) ;

使用所需格式的文本生成字符串。

String output = odt.format( f ) ;

对于时区,类似于上面的代码,但使用ZonedDateTime代替OffsetDateTime

ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ) 

ISO 8601

提示:将日期时间值序列化为文本时,通常最好使用标准ISO 8601格式。要符合ISO 8601的“基本”版本:

  • 在日期部分和时间部分之间插入T
  • 在UTC上暂时附加Z。否则,请附加偏移量。

所以这个:

DateTimeFormatter.ofPattern( "uuuuMMdd'T'HHmmssXXXXX" )

请参见完整的示例run live at IdeOne.com

OffsetDateTime odt = OffsetDateTime.now( ZoneOffset.UTC ) ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuuMMdd'T'HHmmssXXXXX" ) ;
String output = odt.format( f ) ;
  

odt.toString():2019-11-09T04:38:47.972145Z

     

输出:20191109T043847Z


关于 java.time

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

要了解更多信息,请参见Oracle Tutorial。并在Stack Overflow中搜索许多示例和说明。规格为JSR 310

目前位于Joda-Timemaintenance mode项目建议迁移到java.time类。

您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*类。

在哪里获取java.time类?

Table of which java.time library to use with which version of Java or Android

本文链接:https://www.f2er.com/3138969.html

大家都在问