在Java中,如何从2017-03-22T08:57:13-04:00转换为yyyy-MM-dd HH:MM:ss.ssz
我的理解是: 2017-03-22T08:57:13-04:00是当前时间和偏移量w.r.t GMT yyyy-MM-dd HH:MM:ss.SSSS z是GMT时间 我没有找到任何java util可以将这种格式快速转换为另一种格式。我们需要使用字符串util来转换吗 我的首选是使用Java日期或日历Util来执行相同的操作 谢谢,在Java中,如何从2017-03-22T08:57:13-04:00转换为yyyy-MM-dd HH:MM:ss.ssz,java,date,datetime,Java,Date,Datetime,我的理解是: 2017-03-22T08:57:13-04:00是当前时间和偏移量w.r.t GMT yyyy-MM-dd HH:MM:ss.SSSS z是GMT时间 我没有找到任何java util可以将这种格式快速转换为另一种格式。我们需要使用字符串util来转换吗 我的首选是使用Java日期或日历Util来执行相同的操作 谢谢, G我认为,根据您的要求,您需要查看一下SimpleDateFormat可能会有所帮助。另外,DateTimeFormatter也可能是一个选项。前者接受构造函数中
G我认为,根据您的要求,您需要查看一下
SimpleDateFormat
可能会有所帮助。另外,DateTimeFormatter
也可能是一个选项。前者接受构造函数中的模式,然后可以通过新的SimpleDataFormat(模式).format(日期)
转换java.util.Date
DateTimeFormatter是Java8新的日期API的一部分,其工作原理与java.time.LocalDateTime等新类型类似,例如,
DateTimeFormatter.of模式(“yyyy-MM-dd”).format(LocalDateTime.now())
,这已经被讨论了很多次
旧的Date
和Calendar
类乱七八糟,设计拙劣,存在缺陷,令人困惑和麻烦。它们现在是遗留的,被现代的java.time类所取代
OffsetDateTime.parse( "2017-03-22T08:57:13-04:00" )
.toInstant()
.toString()
.replace( "T" , " " )
您的格式是标准ISO 8601格式。默认情况下,java.time类中使用这些标准格式
OffsetDateTime.parse( "2017-03-22T08:57:13-04:00" )
.toInstant()
.toString()
.replace( "T" , " " )
2017-03-22 12:57:13Z