【发布时间】:2012-03-19 05:30:10
【问题描述】:
我有两个程序在两台服务器上。程序 A 在英国服务器,程序 B 在美国服务器。
我需要将日期对象从程序 A 传递给程序 B。但是当我从程序 B 获取日期对象时,我会通过时区转换收到它。如何在不应用此时区转换的情况下将日期对象从一台服务器传递到另一台服务器。
注意:我知道这件事可以通过 Calender 对象来完成,如下所示。但就我而言,我想使用 Date 对象。
在程序 B 中:
Date checkInDate = new Date(cal1.get(Calendar.YEAR) - 1900 , cal1.get(Calendar.MONTH) , cal1.get(Calendar.DATE), cal1.get(Calendar.HOUR_OF_DAY), cal1.get(Calendar.MINUTE), cal1.get(Calendar.SECOND));
Date checkOutDate = new Date(cal2.get(Calendar.YEAR) - 1900 , cal2.get(Calendar.MONTH) , cal2.get(Calendar.DATE), cal2.get(Calendar.HOUR_OF_DAY), cal2.get(Calendar.MINUTE), cal2.get(Calendar.SECOND));
【问题讨论】:
-
java.util.Calendar 用于表示日期和日期转换,java.util.Date 中的大多数方法也已弃用...为什么您不想使用 Calendar?
-
一个 java.util.Date 是一个绝对时间点,它没有时区。无法按预期工作的代码示例将非常有助于理解您的问题:) 以及有关您用于在服务器之间传递对象的方法的信息。
-
你如何通过约会?网页服务?通过数据库和 JDBC?还有什么?答案可能因每种传输方式而异,但通常在传输前转换为“已知”时区 (GMT) 是一个很好的解决方案。此外,您为什么不想要 TZ 转换?
-
我通过 java 序列化传递对象
-
序列化和反序列化
java.util.Date不会应用任何时区效果。Date反序列化将与Date序列化相同。如果您观察到差异,那是因为您做错了什么。
标签: java datetime date timezone