gpt4 book ai didi

java - 为什么 Java 将 1h 添加到我的 DateTime 中?

转载 作者:行者123 更新时间:2023-12-02 02:57:09 24 4
gpt4 key购买 nike

我有两个 DateTime (Joda) 变量:

 DateTime from = new DateTime(2015, 1, 1, 0, 0, 0, 0);
DateTime to = new DateTime(2015, 3, 31, 0, 0, 0, 0);

我将这些变量传递给另一个方法:

AtmosphericDb.GetParameterMetaRecords(AtmosphericParameter.Dust_Coarse, from , to);

这些日期用于 SQL 查询:

String sql = "SELECT * 
FROM metalinks
WHERE parameter_name = ?
AND date_from >= ?
AND date_to <= ?; ";

PreparedStatement preparedStatement = metaStoreConnection.prepareStatement(sql);
preparedStatement.setString(1, parameter.name().replace('_', '-').toLowerCase());
preparedStatement.setDate(2, new java.sql.Date(from.toDate().getTime()));
preparedStatement.setDate(3, new java.sql.Date(to.toDate().getTime()));
ResultSet resultset = preparedStatement.executeQuery();

一切正常,但是当我没有得到预期的结果时,我发现传递给 SQL 查询中的 to 参数的 DateTime 不正确。

System.out.println(preparedStatement);

上面的代码行打印出以下内容:

SELECT * 
FROM metalinks
WHERE parameter_name = 'dust-coarse'
AND date_from >= '2015-01-01 +00:00:00'
AND date_to <= '2015-03-31 +01:00:00'

现在,为什么 2015-03-31 +01:00:00 中有 +01:00:00 而不是 +00:00 :00 ?

最佳答案

英国将于 3 月 26 日从标准时间 +00:00:00 改为夏令时间 +01:00:00。毫无疑问,您'在设置为英国本地时间的平台上运行您的程序。

编辑:2015 年是 3 月 29 日。

关于java - 为什么 Java 将 1h 添加到我的 DateTime 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42891622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com