leo*_*orn 6 java coldfusion timezone
首先快速总结一下我的问题,然后详细说明.
我有一个日历日期00:00:00作为时间,因为它对业务不重要.此值将发送到Web服务,该服务生成XML,其中值以下列格式结束:2014-09-12T07:55:07.000Z.我注意到这是原始值转换为+0时区(UTC)(我们的是CET,+ 1,但是目前是CEST,+ 2,因为DST).
我目前不知道读取XML的系统是否考虑了时区,或者是否会提取2014-09-12并假设它在+2时区.
我注意到发送" 2014-09-12 00:00:00"本地时间(tz +2)最终会像2014-09-11T22:00:00.000Z在XML中一样.没有什么大惊喜,它转换了它...但如果它被另一个系统解释为它,它会认为日期比它应该早一天.
可以做些什么来确保将其解释为预期?
我正在考虑使用正午而不是午夜来确保时区转换不会影响解释,但这感觉就像一个肮脏的把戏.或者也许我应该作弊并将日历时区设为+0,以便在放入XML时不会时移?
为什么"将日历发送到网络服务"?
该应用程序位于Coldfusion 7中.为了与SOAP Web服务进行通信,服务器生成一组Java类,这些类适合webservice期望的参数定义.该参数显然是一个具有大量属性和子属性的大对象.因此,实例化主Java类并使用setter和其他类的进一步instanciations来"填充"所有属性.
你必须使用日历吗?
是的,无法更改Java对象定义.它期望所有日期的日历.
这是什么2014-09-11T22:00:00.000Z格式?
我不知道.这似乎是最终系统对日期的期望.
你应该使用JODA
除非JODA类扩展Calendar并且与Java 1.3兼容(Coldfusion服务器上的当前Java版本 - 是的,它是旧的),我怀疑它会起作用.
你能在其他系统上做多少钱?
另一个系统是另一个团队的责任,显然很难改变.我希望我们的应用程序必须找到解决方案.
虽然日历对象中的时间值对您的业务并不重要,但对您使用且无法控制的 Web 服务很重要。日历对象指定时间上的某个时刻,因此您必须确保该时刻是对您来说很重要的一天。我建议您使用中午,正如您已经建议的那样。我还建议您在 UTC 时区创建日历对象:
Calendar myCalendar=Calendar.getInstance(TimeZone.getTimeZone("UTC"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |