Joda DateTime ISODateTimeFormat模式

Dav*_*ile 18 java datetime jodatime

Joda ISODateTimeFormat文档说ISODateTimeFormat.dateTime()返回模式yyyy-MM-dd'T'HH的格式化程序:mm:ss.SSSZZ

但格式化程序返回一个"Z"代替+00:00看到这个 -

DateTime dt = DateTime.now(DateTimeZone.UTC);

DateTimeFormatter patternFormat = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZZ");
DateTimeFormatter isoFormat = ISODateTimeFormat.dateTime();

System.out.println(dt.toString(patternFormat));     //2014-06-01T03:02:13.552+00:00
System.out.println(dt.toString(isoFormat));         //2014-06-01T03:02:13.552Z
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我将+00:00作为Z打印的模式是什么

编辑:只是为了澄清 - 我知道'Z'与+00:00相同但文字上却不同.我要问的是什么模式将Z作为时间偏移而不是+00:00

(对不起,如果这太微不足道了.我想在没有毫秒的情况下使用ISO格式,在写这个问题的过程中,我发现我在ISODateTimeFormat.dateTimeNoMillis()中找到了正确的内容,所以我现在只是为了利益而要求)

干杯

ara*_*nid 13

您似乎不能仅仅从模式构建这样的格式化程序.DateTimeFormat文档说:

    DateTimeFormatter patternFormat = new DateTimeFormatterBuilder()
        .appendPattern("yyyy-MM-dd'T'HH:mm:ss.SSS")
        .appendTimeZoneOffset("Z", true, 2, 4)
        .toFormatter();
Run Code Online (Sandbox Code Playgroud)

您可以从模式构建大部分格式化程序,然后自定义时区输出,如下所示:

    DateTimeFormatter patternFormat = new DateTimeFormatterBuilder()
        .appendPattern("yyyy-MM-dd'T'HH:mm:ss.SSS")
        .appendTimeZoneOffset("Z", true, 2, 4)
        .toFormatter();
Run Code Online (Sandbox Code Playgroud)