嗨,我不知道如何将"2020-03-11 16:27:31"
转换为"2020-03-11T16:27:31+00:00"
。
我不知道。
日期是给定的,格式为"2020-03-11 16:27:31"
我想要这种格式的上述日期"2020-03-11T16:27:31+00:00"
以下是您可以执行所需操作的方法(如果您使用的是java8(:
String date = "2020-03-11 16:27:31";
String pattern = "yyyy-MM-dd HH:mm:ss";
// formatter with spaces before and after 'T'
DateTimeFormatter f0 = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.append(DateTimeFormatter.ISO_LOCAL_DATE)
.appendLiteral(' ')
.appendLiteral('T')
.appendLiteral(' ')
.append(DateTimeFormatter.ISO_LOCAL_TIME)
.optionalStart().appendOffset("+HH:MM", "+00:00").optionalEnd()
.toFormatter();
// formatter without spaces before and after 'T'
DateTimeFormatter f1 = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.append(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
.optionalStart().appendOffset("+HH:MM", "+00:00").optionalEnd()
.toFormatter();
OffsetDateTime offsetDateTime = LocalDateTime.parse(date, DateTimeFormatter.ofPattern(pattern))
.atOffset(ZoneOffset.ofHoursMinutes(0, 0));
String result = offsetDateTime.format(f1);
但我建议您按照@deHaar的建议阅读java.timi手册。
如果您使用的是Java 8或更高版本,请使用java.time
(在此处阅读为什么以及如何使用它(将具有适当DateTimeFormatter
的String
解析为LocalDateTime
,通过添加+00:00
的ZoneOffset
来创建其OffsetDateTime
,并使用不同的DateTimeFormatter
输出。
您可以通过向DateTimeFormatter
添加所需的模式并调用其方法ofPattern(String pattern)
来准备所需的格式。
如果你想看一个例子,请向我们展示你迄今为止所做的尝试。