我有一个应用程序,它以时间戳作为 sql 选择的开始日期和结束日期的边界,我想填充一个 HashMap ,其中自今年的第一个星期一以来的周数作为值和周数作为 key 。我发现使用时间戳真的很难,而且我对添加 86,400,000 秒来增加一天感觉不太好,因为这不考虑闰日、小时、秒。
我打算在上面加上 13 天 23 小时 59 分 59 秒,这样我就可以在 map 中以星期为关键字查找开始日期,然后使用开始日期来获取结束日期。
所以我想尝试得到这样的东西:
Week startDate endDate
1 2011-01-03 00:00:00 2011-01-16 23:59:59
2 2011-01-17 00:00:00 2011-01-30 23:59:59
map 中的前两列和最后一列是在查找后计算的。如何安全地增加 java.sql.Timestamp?
最佳答案
java.sql.Timestamp ts = ...
Calendar cal = Calendar.getInstance();
cal.setTime(ts);
cal.add(Calendar.DAY_OF_WEEK, 14);
ts.setTime(cal.getTime().getTime()); // or
ts = new Timestamp(cal.getTime().getTime());
这将在您的默认时区正确地满足白天时间的转换。如果需要,您可以告诉 Calendar 类使用不同的时区。
关于java - 如何将 java.sql.Timestamp 增加 14 天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450045/