如何在Java中将2020-08-07T16:07:13.337248Z`中的UTC日期字符串转换为`MM-dd-yyyy hh:mm``

时间:2020-08-10 22:18:55

标签: java datetime timezone datetime-format

我有一个字符串,它是UTC“ 2020-08-07T16:07:13.337248Z”中表示的日期时间,我想将其转换为Java中“ MM-dd-yyyy hh:mm”格式的EST 。谁能帮我吗?

1 个答案:

答案 0 :(得分:1)

尝试一下。

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

String timeStr = "2020-08-07T16:07:13.337248Z"; 
String format = "MM-dd-yyyy hh:mm a";

ZonedDateTime zdt = ZonedDateTime
    .parse(timeStr,DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneId.of("GMT-5")));

如果您想允许使用Daylight Savings Time,请执行以下操作:

ZonedDateTime zdt = ZonedDateTime.parse(timeStr, 
  DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneId.of("EST5EDT")));
        
                
System.out.println(ldt.format(DateTimeFormatter.ofPattern(format)));

打印

08-07-2020 11:07 AM

我以aam的格式添加了pm。如果您想在输出中看到EST,请在'EST'之后放入a