Java 7 DateFormat将UTC日期解析为本地日期

时间:2019-06-18 19:10:59

标签: java java-7 simpledateformat date-format java-date

能否让我知道JDK 7日期格式应为哪种格式来解析日期2019-06-18T19:04:30.515 UTC并将其更改为本地日期时间?

2 个答案:

答案 0 :(得分:2)

java.time

对于Java 6和7,您可以使用the crash data dictionary项目将大多数现代的 java.time 功能引入Java 6和Java7。这意味着您可以避免使用可怕的旧式日期时间类,例如SimpleDateFormat(由DateTimeFormatter取代)。

  

解析日期2019-06-18T19:04:30.515 UTC

首先,我们操纵您的输入字符串以完全符合ThreeTen-Backport。我们用Z(发音为“ Zulu”)替换该SPACE和“ UTC”。

String input = "2019-06-18T19:04:30.515 UTC".replace( " UTC" , "Z" ) ;
Instant instant = Instant.parse( input ) ;
  

并将其更改为本地日期时间?

要从UTC调整到另一个时区,请应用ZoneId以获得ZonedDateTime

ZoneId z = ZoneId.of( "Pacific/Auckland" ) ;  // Or "Europe/Berlin" etc. 
ZonedDateTime zdt = instant.atZone( z ) ;

要生成一个字符串,该字符串表示针对用户的人类语言和文化规范而本地化的日期时间值,请使用DateTimeFormatter.ofLocalizedDateTime

答案 1 :(得分:1)

在这里您可以找到有关此主题的有趣文章:

https://en.wikipedia.org/wiki/Coordinated_Universal_Time

有关模式的说明可以在这里找到:

https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#timezone

这使我建议使用“ yyyy-MM-dd'T'HH:mm:ss.SSS z”作为模式。希望对您有帮助。