java - 如何将 java.sql.Timestamp 增加 14 天?

标签 java sql timestamp increment

我有一个应用程序,它以时间戳作为 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/

相关文章:

date - 在 Hive 中将 dd/mm/yyyy/hh/mm/ss 格式更改为 yyyymm

java - 自定义按键事件

java - Android 应用程序崩溃时未获取堆栈跟踪

java - 负载测试 - 需要运行模拟 10 万用户的测试

java - 从 csv 文件中逐行读取

sql - 无法创建表 - 错误 1064 (42000) : You have an error in your SQL syntax

sql - 获取 PK 的列列表

mysql - 根据用户表中的积分对用户进行排名

java - 在Java中获取时间戳

java - 为什么这段代码会生成不正确的数据?