【发布时间】:2019-03-22 21:48:55
【问题描述】:
我需要在我的肥皂请求 dateTime 字段中添加时区。
见下面我的Java服务客户端的sn-p,
Calendar cancelDate = Calendar.getInstance(TimeZone.getDefault());
我在调试时可以看到下面的时区设置:
zone=sun.util.calendar.ZoneInfo[id="Etc/GMT-3"
java.util.GregorianCalendar[time=1539843209365,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Etc/GMT-3",offset=10800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=9,WEEK_OF_YEAR=42,WEEK_OF_MONTH=3,DAY_OF_MONTH=18,DAY_OF_YEAR=291,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=13,SECOND=29,MILLISECOND=365,ZONE_OFFSET=10800000,DST_OFFSET=0]
但在肥皂请求中,它会像这样弹出(显示 3 小时前):
<CancelDate>2018-10-18T06:10:07.738Z</CancelDate>
时间信息后没有附加时区。我想要的是请求:
2018-10-18T16:23:20.000+03:00
那么我应该怎么做才能做到这一点呢?
谢谢!!
【问题讨论】:
-
更正:SOAP 请求中日期时间中的
Z是一个偏移量,表示UTC 或距UTC 的偏移量0。 -
我需要设置偏移量吗?
-
取决于服务器的需求。如果它只需要一个时间点,那么
2018-10-18T13:23:20.000Z和2018-10-18T16:23:20.000+03:00将是等效的。如果它使用偏移量,它们不是。
标签: java soap calendar timezone