java 中的 XMLGregorianCalendar,没有时区
XMLGregorianCalendar in java, with NO Timezone
如何创建没有时区的 XMLGregorianCalendar?没有时间偏移量 (0) == UTC,它在输出中输出 'Z'。我的字段的含义是隐式本地时间,其中在 xml 记录的其他地方指定了地点(例如地址)。
如何创建具有未定义时区(时区不确定)的 XMLGregorianCalendar?
有效的 XML ISO-8601 公历格式包括:
- CCYY-MM-DDThh:mm:ss – 没有祖鲁时间指示符或 TimeOffset 指的是相对物理位置的本地时间。
- CCYY-MM-DDThh:mm:ssZ – 相对物理位置的日期时间以 UTC(祖鲁)时间表示,对于本地时间必须进行转换。
- CCYY-MM-DDThh:mm:ss+05:30 相对物理位置的日期时间以与 UTC 相差 +5 小时 30 分钟的某个时区表示。对于本地时间,我们必须首先转换为 UTC,然后通过从 UTC 偏移转换为本地时间。不能保证提供的位置是记录位置的当地时间。
我看了the documentation of XMLGregorianCalendar
。在顶部的 table 中,底行表示时区是
Number of minutes or 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
我将时区设置为未定义后,它不再打印偏移量。所以我相信我已经得到了你想要的。
如何创建没有时区的 XMLGregorianCalendar?没有时间偏移量 (0) == UTC,它在输出中输出 'Z'。我的字段的含义是隐式本地时间,其中在 xml 记录的其他地方指定了地点(例如地址)。
如何创建具有未定义时区(时区不确定)的 XMLGregorianCalendar?
有效的 XML ISO-8601 公历格式包括:
- CCYY-MM-DDThh:mm:ss – 没有祖鲁时间指示符或 TimeOffset 指的是相对物理位置的本地时间。
- CCYY-MM-DDThh:mm:ssZ – 相对物理位置的日期时间以 UTC(祖鲁)时间表示,对于本地时间必须进行转换。
- CCYY-MM-DDThh:mm:ss+05:30 相对物理位置的日期时间以与 UTC 相差 +5 小时 30 分钟的某个时区表示。对于本地时间,我们必须首先转换为 UTC,然后通过从 UTC 偏移转换为本地时间。不能保证提供的位置是记录位置的当地时间。
我看了the documentation of XMLGregorianCalendar
。在顶部的 table 中,底行表示时区是
Number of minutes or
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
我将时区设置为未定义后,它不再打印偏移量。所以我相信我已经得到了你想要的。