java中的XMLGregorianCalendar,没有时区

时间:2017-11-30 00:47:29

标签: java timezone xmlgregoriancalendar

如何在没有时区的情况下创建XMLGregorianCalendar?没有时间偏移(0)== UTC输出' Z'在输出中。我的字段的含义是隐式本地时间,其中locality在xml记录的其他地方指定(例如地址)。

如何使用未定义的时区创建XMLGregorianCalendar(TimeZone indeterminate)?

有效的XML ISO-8601格里高利历日历格式包括:

  • CCYY-MM-DDThh:mm:ss - 没有Zulu时间指示符或TimeOffset指的是相对物理位置的本地时间。
  • CCYY-MM-DDThh:mm:ssZ - 相对物理位置的DateTime以UTC(Zulu)时间表示,当地时间必须进行转换。
  • CCYY-MM-DDThh:mm:ss + 05:30相对物理位置的DateTime以某个时区表示,该时区与UTC的偏移量为+5小时30分钟。对于当地时间,我们必须首先转换为UTC,然后通过偏离UTC来转换为本地时间。无法保证所提供的位置是记录位置的当地时间。

1 个答案:

答案 0 :(得分:5)

我看了the documentation of XMLGregorianCalendar。在顶部的表格中,在底行,它表示时区是

  

分钟数或DatatypeConstants.FIELD_UNDEFINED

让我们尝试后一种选择:

    System.out.println(xcal);
    xcal.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
    System.out.println(xcal);

在一次试运行中打印出来:

2017-11-30T07:54:05.647+01:00
2017-11-30T07:54:05.647

将时区设置为undefined后,它不再打印偏移量。所以我相信我已经获得了你想要的东西。