TL;博士
Interval.parse(input)
.getEnd()
.atOffset(ZoneOffset.UTC)
.format(
DateTimeFormatter.ISO_LOCAL_DATE_TIME
)
Interval
期间你的输入字符串为标准ISO 8601格式。它代表了一对时刻,最后Z
是祖鲁语的缩写,意思是UTC。斜杠字符分隔开始和结束。
解析ThreeTen-Extra项目中找到的Interval
类。
Interval interval = Interval.parse(input) ;
Instant
提取停止的时刻。
Instant instant = interval.getEnd() ;
OffsetDateTime
我怀疑你应该使用对象那样干Instant
而不是操纵字符串。但是,如果您坚持要生成格式化字符串,请将Instant
转换为OffsetDateTime
。
OffsetDateTime odt = instant.atOffset(ZoneOffset.UTC) ;
此外,它通常是一个坏主意下降偏置/区指示器如Z
。由此产生的字符串就其含义而言变得含糊不清,不再代表时间线上的特定时刻。但是,如果你坚持,有一个预定义的事情。
String output = odt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME) ;
如果您使用的是Java版本8,请查看java.time'包。如果您使用以前的版本,请查看joda时间库。 – Henrik
@Henrik它是'java.time',而不是'java.util.time'。 –
什么菜鸟错误....尴尬。谢谢。 – Henrik