gpt4 book ai didi

java - 格式 XMLGregorianCalendar

转载 作者:行者123 更新时间:2023-12-02 02:39:36 24 4
gpt4 key购买 nike

下面是我的代码

GregorianCalendar gregory=new GregorianCalendar();
gregory.setTime(new Date());
XMLGregorianCalendar xmlGregorianCalendar=DatatypeFactory.newInstance().newXMLGregorianCalendar(gregory);
System.out.println(xmlGregorianCalendar.toString());

当我在上面代码的最后一行打印 SOP 时,得到的输出类似于

2016-07-28T15:25:47.064+05:30

但是我试图将输出设为

2016-07-28+05:30

我尝试过不同的格式化程序,但没有成功。

任何建议都会对我很有帮助

至少我们可以使用 SimpleDateFormat 获得这种格式吗?

通过使用 simpledateformat iam 可以获得“2016-07-29+0530”。请告诉我是否可以在“05”和“30”之间添加“:”。我的代码如下

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-ddZ");

在 Java 版本 7 和 8 中,可以通过使用下面的方法来获取

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-ddXXX");

但不确定 java 6 版本

最佳答案

最简单的方法是重建 JDK7 功能。您必须知道新的 XXX 计算是基于 Calendar 类的现有字段。他们采用 Calendar.ZONE_OFFSETCalendar.DST_OFFSET 并从那里开始,如下所示:

    int totalOffset = calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET);

StringBuilder sb = new StringBuilder();

//handle zero offset
if (totalOffset == 0) {
sb.append('Z');
}

//convert to minutes because timezones are minute based
totalOffset = totalOffset / 60000;
char prefix = '-';
if (totalOffset >= 0) {
prefix = '+';
}
sb.append(prefix);

//if negative offset, invert now
totalOffset = Math.abs(totalOffset);

sb.append(String.format("%02d", (totalOffset / 60)));
sb.append(':');
sb.append(String.format("%02d", (totalOffset % 60)));

System.out.println(sb.toString());

我希望这段代码可以帮助您从此开始。

关于java - 格式 XMLGregorianCalendar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com