【问题标题】:Why is a day added when converting XMLGregorianCalender to Date here?为什么这里将 XMLGregorianCalender 转换为 Date 时要加一天?
【发布时间】:2014-09-11 00:55:24
【问题描述】:

好的,首先我在新西兰排队,所以我们的日期写成 yyyy/MM/dd。

现在,当我从服务器转换日期时(为了清楚起见,我刚刚复制了 XML 字符串),将一天添加到天数中,时间变为上午 9 点而不是晚上 9 点。

public static void main(String[] args){

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

    XMLGregorianCalendar xmlCalander = null;

    try {
        xmlCalander = DatatypeFactory.newInstance().newXMLGregorianCalendar("2014-07-20T21:00:00Z");
    } catch (DatatypeConfigurationException e) {
        e.printStackTrace();
    }

    System.out.println("Today at9pm converted: " + simpleDateFormat.format(xmlCalander.toGregorianCalendar().getTime()));
}

输出是:

今天晚上 9 点转换:2014-07-21T09:00:00

当我期待时(24 小时时间):

今天晚上 9 点转换:2014-07-20T21:00:00

【问题讨论】:

    标签: java date datetime type-conversion


    【解决方案1】:

    从日期字符串中删除Z,它应该可以工作。

    【讨论】:

    • 干杯,效果很好。但这是为什么呢?如果我无权访问该字符串而只是调用object.getDate() 并转换它,那么我如何获得准确的结果?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2012-06-03
    相关资源
    最近更新 更多