【问题标题】:I have a date in "2017-05-26T04:08:00.000+05:30" in XMLGregorianCalendar i need to convert it to 2017-05-26T04:08:00.000z我在 XMLGregorianCalendar 中的“2017-05-26T04:08:00.000+05:30”中有一个日期,我需要将其转换为 2017-05-26T04:08:00.000z
【发布时间】:2017-11-05 07:22:39
【问题描述】:

我在 XMLGregorianCalendar 中的“2017-05-26T04:08:00.000+05:30”中有一个日期,我需要在 XMLGregorianCalendar 本身中将其转换为 2017-05-26T04:08:00.000Z。

【问题讨论】:

  • 欢迎来到 SO。请阅读此how-to-ask 以使用足够且具体的信息来描述您的问题来改进您的问题。
  • 你使用的是哪个版本的java?
  • 这两个日期意味着不同的东西。所以请解释一下“转换”是什么意思。

标签: java xml xmlgregoriancalendar


【解决方案1】:

事实证明,您可以单独设置XMLGregorianCalendar 的字段。所以就做吧

    yourXmlGregorianCalendar.setTimezone(0);
    System.out.println(yourXmlGregorianCalendar);

打印出来:

2017-05-26T04:08:00.000Z

我希望你知道新的时间不等于旧的时间。相反,它等于 2017-05-26T09:38 在您的原始时区偏移 +05:30。

编辑:如何获取没有时区“2017-05-26T04:08:00”的 XMLGregorianCalendar 日期?也就是说,我也不想要任何毫秒!

让我看看,我不是在the documentation 中看到了什么吗?它说:“通过调用参数值为DatatypeConstants.FIELD_UNDEFINED 的setter 来取消设置这个字段,”事实上,它对所有接受int 参数的setter 表示。让我们试试吧:

    yourXmlGregorianCalendar.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
    yourXmlGregorianCalendar.setMillisecond(DatatypeConstants.FIELD_UNDEFINED);
    System.out.println(yourXmlGregorianCalendar);

打印出来:

2017-05-26T04:08:00

我们不在那里吗?

【讨论】:

  • 以及如何获取没有时区 "2017-05-26T04:08:00" 的 XMLGregorianCalendar 日期?
  • 这给了我这个结果“2017-05-26T04:08:00.000”我想要“2017-05-26T04:08:00”
  • 再次编辑。 @PeterOsta
  • 如果阅读文档可以成为天才。 :-) 很高兴它成功了! :-)
最近更新 更多