JodaTime:日期时间改为Z -04:00

时间:2019-06-11 21:39:42

标签: java jodatime

嗨,我对乔达时间有疑问。我正在尝试在日期时间结束时获取'Z'值,但不能:

我尝试使用以下语法,但是没有运气,不确定确切

LocalDateTime currentDateTime = LocalDateTime.now(DateTimeZone.forID("GMT"));

输出:2019-06-11T21:29:42.474

LocalDateTime currentDateTime = LocalDateTime.now(DateTimeZone.forID("GMT"));
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");    
DateTime parsedDateTimeUsingFormatter
            = DateTime.parse(currentDateTime.toString(), fmt);
System.out.println(parsedDateTimeUsingFormatter);

输出:2019-06-11T21:29:42.474-04:00

但是我需要像下面这样的GMT格式:

预期产量:2019-06-11T21:29:42.474Z

2 个答案:

答案 0 :(得分:3)

听起来您只需要在UTC中创建DateTime

DateTime utcNow = DateTime.now(DateTimeZone.UTC);
System.out.println(utcNow);

这不是“仅在末尾加一个Z”的问题-您需要确保实际上已经获得一个UTC时间戳。

答案 1 :(得分:0)

您可以尝试以下方法:

LocalDateTime localNow = LocalDateTime.now(TimeZone.getTimeZone("GMT").toZoneId());

现在我们将其设置为格林尼治标准时间,我们可以继续;

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String formatDateTime = localNow.format(formatter);

答案将采用这种格式

  

2019-06-11T22:28:20.062Z