在Java中,如何转换2017-03-22T08:57:13-04:00转换为yyyy-MM-dd HH:mm:ss.SSSS z

时间:2017-03-25 20:33:27

标签: java date datetime

我的理解是: 2017-03-22T08:57:13-04:00是格林尼治标准时间的当前时间和偏差 和yyyy-MM-dd HH:mm:ss.SSSS z是GMT时间。

我没有找到任何java util来快速将其从一种格式转换为另一种格式。我们是否需要使用字符串util来转换?

我的偏好是使用Java Date或Calendar Util来做同样的事情。

谢谢, ģ

3 个答案:

答案 0 :(得分:1)

我认为你要问的是你需要看看SimpleDateFormat

答案 1 :(得分:0)

SimpleDateFormat可能会有所帮助。 DateTimeFormatter也可能是一种选择。前者接受构造函数中的模式,然后可用于通过java.util.Date转换new SimpleDateFormat(pattern).format(date)

DateTimeFormatter是Java8的新Date API的一部分,其工作方式与java.time.LocalDateTime类似DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDateTime.now())类似。

答案 2 :(得分:0)

这已经被多次覆盖了。

DateCalendar类是一个非常混乱,设计不佳,有缺陷,令人困惑和麻烦。它们现在已经遗留下来,取而代之的是现代java.time类。

您的格式为标准ISO 8601格式。默认情况下,这些标准格式在java.time类中使用。

OffsetDateTime.parse( "2017-03-22T08:57:13-04:00" )
              .toInstant()
              .toString()
              .replace( "T" , " " )
  

2017-03-22 12:57:13Z