java 日历的时区格式_java-格式化XmlGregorianCalendar时区问题

博客作者在尝试将Java的XMLGregorianCalendar日期格式转换为"yyMMdd"字符串时遇到问题。日志显示日期被解析为了4月14日,而非预期的4月15日。错误可能与时区设置有关,但作者不确定何时设置时区。代码中使用了SimpleDateFormat进行格式化,并进行了日志打印以检查各个步骤。
摘要由CSDN通过智能技术生成

我需要将Java XmlGregorianCalendar格式化为“ yyMMdd”字符串.

我的实现:

XMLGregorianCalendar date = getDate(); //getting the date

if (date != null) {

SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");

LOG.debug("Parsing date...");

LOG.debug("XML Date: " + date);

LOG.debug("XML Date timezone: " + date.getTimezone());

GregorianCalendar gc = date.toGregorianCalendar();

LOG.debug("Gregorian calendar: " + gc.toString());

LOG.debug("Gregorian calendar timezone id: " + gc.getTimeZone().getID());

Date d = gc.getTime();

LOG.debug("Date: " + d.toString());

String formatted = sdf.format(d);

LOG.debug("Formatted: " + formatted);

}

我在日志中看到的是:

Parsing date...

XML Date: 1943-04-15T00:00:00.000Z

XML Date timezone: 0

Gregorian calendar: java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+00:00",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=1943,MONTH=3,WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=15,DAY_OF_YEAR=1,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0]

Gregorian calendar timezone id: GMT+00:00

Date: Wed Apr 14 20:00:00 EDT 1943

Formatted: 430414

15年4月被解析为4月14日.我在做什么错?我应该何时设置时区?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值