我尝试将带有时区的时间转换为时间,但是没有成功,请您帮忙提供建议吗?
带时区的时间:2019-01-31T05:20:18.728 + 02:00 (您可能会注意到,时间+02:00结束时有一个偏移量。而不是05 :20:18.728 + 02:00,我想打印出07:20:18,表示05:20:18 +时间偏移)。
显示时间:07:20:18
...
LocalDateTime ldt = LocalDateTime.now(); //my local time is set to GMT
ZoneOffset offset1 = ZoneOffset.ofHours( (offset%24) );
OffsetDateTime odt = ldt.atOffset( offset1);
System.out.println(odt);
...
我的问题已更新。
非常感谢, 常春藤
答案 0 :(得分:1)
您可以使用Java-8 DateTimeFormatter
类来格式化LocalTime
实例,以仅获取时间部分。
public static void main(String[] args) {
LocalTime localTime = LocalTime.now(ZoneId.of("GMT"));
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(localTime.format(dtf));
//From an ISO date string
LocalTime parseTime = LocalTime.from(DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse( "2019-01-31T05:20:18.728+02:00"));
System.out.println(parseTime.format(dtf));
}
输出:
05:47:57
05:20:72