java soap取得数据,Java和SOAP数据客户端请求为UTC时间并保存为EST时间

我有一个肥皂客户端请求,我需要将日期响应转换为EST时间。

在我的屏幕上,我选择了:上午11:45,我想在数据库中保存上午11:45。

但是SOAP请求的内容如下:

2012-11-24T16:45:00.000Z

在java代码中,日期打印为:

星期六11月24日11:45:00 EST 2012 ...

然而,我们做了另一个网络服务调用,最终保存到数据库(SQL Server):2012-11-24 16:45Calendar incomingWebServiceCalendarObject = fromWebService.getDateTime()

Calendar outgoingWebServiceCalendarObject = incomingWebServiceCalendarObject;

webServiceBean.setDateTime(outgoingWebServiceCalendarObject);

...我怎样才能保存为2012-11-24 11:45?

另外,这里是公历:

java.util.GregorianCalendar中[时间= 1353775500000,areFieldsSet =真,areAllFieldsSet =真,宽大=真,区= sun.util.calendar.ZoneInfo [ID = “美国/纽约”,偏移= -18000000,dstSavings = 3600000,useDaylight =真,过渡= 235,lastRule = java.util.SimpleTimeZone中[ID =美国/纽约,偏移= -18000000,dstSavings = 3600000,useDaylight =真,startYear = 0,STARTMODE = 3,startMonth = 2,朝九特派= 8, startDayOfWeek = 1,开始时间= 7200000,startTimeMode = 0,endMode = 3,endMonth = 10,endday指定= 1,一个endDayOfWeek = 1,结束时间= 7200000,endTimeMode = 0]],Firstdayofweek可= 1,minimalDaysInFirstWeek = 1,ERA = 1, YEAR = 2012,月= 10,WEEK_OF_YEAR = 47,WEEK_OF_MONTH = 4,DAY_OF_MONTH = 24,DAY_OF_YEAR = 329,DAY_OF_WEEK = 7,DAY_OF_WEEK_IN_MONTH = 4,AM_PM = 0,HOUR = 11,HOUR_OF_DAY = 11,MINUTE = 45,SECOND = 0,微差= 0,ZONE_OFFSET = -18000000,DST_OFFSET = 0]

...

我做了以下,这似乎工作,这是一个正确的方法,根据我的要求,试图完成的代码是什么?final long offset = this.secondaryScheduleTime.getTimeInMillis() + TimeZone.getTimeZone("EST").getRawOffset();

final Date estTime = new Date(offset);

final Calendar c2 = Calendar.getInstance();

c2.setTime(estTime);

您的初始SOAP请求以UTC( .000Z是您的时区信息)进入,之后您的Calendar对象将其转换为东部时间,zone=sun.util.calendar.ZoneInfo[id="America/New_York"... for显示,然后你将原始的SOAP信息保存到你的数据库中。

你没有显示的是你如何保存你的数据库和哪些时间戳。

我只能想到你正在进行的两种情况:

您的数据库仅使用UTC,并且不会保存时区信息。 这意味着每个来自/从您的数据库的呼叫始终是UTC,并且时区将留给您的代码。

您的数据库通过Timestamp数据类型保存时区信息,但是您将SOAP请求中的UTC信息发送到数据库,而不是本地Calendar对象。

我认为你提供的解决方案在上面的列表中满足#2,但是再次,没有看到任何其他细节,我认为这将很难确定。

我会建议删除一些断点并逐步浏览代码,以查看您的日期对象的创建时间/位置以及信息。

链接地址: http://www.djcxy.com/p/947.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值