我在我的代码中遇到了日期/时间计算的时区问题。将需要您的建议。下面是场景。
我的应用程序必须从 hbase 数据库中选择数据。此数据将根据 hbase 中的表中的日期搜索条件进行选择。该表有一个用于过滤的日期时间列。
现在,在此表中填充数据的另一个应用程序正在以 GMT 时区格式插入日期时间(这是该团队所说的)。该应用程序部署在位于 EST 时区的服务器上。我从用户那里得到一个输入日期(没有时间分量),我需要将其转换为 GMT 时区。但是目前正在发生的事情是,当我进行转换时,某些数据没有在 EST 时区被选取。在我的本地时区 IST 中选取了相同的数据。我已经在部署在我的本地和远程 server.example 中的代码中完成了到 GMT 的转换。
表中数据的日期:2013-03-15 01:30:30
用户输入数据:2013-03-15(无时间分量)。我特别添加了时间组件。
添加时间组件后的日期:开始日期-2013-03-15 00:00:00,结束日期-2013-03-15 23:59:59。
我在 IST 时区(UTC+5:30)。所以转换为 GMT 的开始日期和结束日期都是
开始日期转换为 GMT -2013-03-14 18:30:56。
结束日期转换为 GMT - 2013-03-15 18:30:56。
现在,由于用户 2013-03-15 01:30:30 提供的日期在上述范围内,因此表中的数据正在此时区中提取。
相同的代码部署在 EST(UTC-5:00) 中的远程服务器中。
开始日期转换为 GMT -2013-03-15 05:00:56。
结束日期转换为 GMT - 2013-03-16 05:00:56。
现在,由于用户 2013-03-15 01:30:30 提供的数据不在此范围内,因此数据没有被拉起。
我不确定如何处理这种情况,以便跨时区的计算保持一致。因为测试人员说数据应该跨时区保持一致。但是正如您所看到的,GMT 转换已经完成,但日期因两个时区的偏移量而不同,并且数据没有被拉起。如果你能让我知道如何处理这将是很大的帮助。
我没有在此处放置任何代码,因为它是在线找到的时区标准代码,并且在大多数情况下都是相同的。