我需要将日期字符串转换为另一种特定格式。
例如:我有一个日期,可以是 YYYY-MM-DD
或YYYY-MM-DDThh:mm:ss±0000
我需要将其转换为 "yyyy-mm-ddTHH:MM:SSZ"
.
我使用 Java 8 API 尝试了一些方法,但找不到出路。
最佳答案
试试这个(Java 8):
String input = "2016-10-14T14:19:40-04:00";
String output = ZonedDateTime.parse(input).toInstant().toString();
System.out.println(output); // prints 2016-10-14T18:19:40Z
这是有效的,因为 ZonedDateTime
的主要格式由 parse()
使用是 ISO_ZONED_DATE_TIME
,因此它将以您描述的格式解析输入。
您请求的输出格式恰好是默认格式Instant
,由其 toString()
返回方法,即 ISO_INSTANT
格式。
在两者之间进行转换(使用 toInstant()
方法将 ZonedDateTime
转换为 Instant
)将执行必要的时区调整。
关于java - 将格式 "yyyy-mm-ddTHH:MM:SS+/-0000"的日期转换为 "yyyy-mm-ddTHH:MM:SSZ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40049414/