据我所知,kk应该会导致数小时到1-24。但是,这种格式化日期的变化似乎存在问题。
以下是示例代码及其输出,以说明我的观点:
Long HOUR = 3600000L;
SimpleDateFormat kkFormat = new SimpleDateFormat("yyyy-MM-dd kk");
SimpleDateFormat HHFormat = new SimpleDateFormat("yyyy-MM-dd HH");
Date date = kkFormat.parse("2015-05-20 21");
for(int i=0; i<5; i++){
System.out.println(kkFormat.format(new Date(date.getTime() + i * HOUR)));
System.out.println(HHFormat.format(new Date(date.getTime() + i * HOUR)));
System.out.println();
}
这会生成以下输出:
2015-05-20 21
2015-05-20 21
2015-05-20 22
2015-05-20 22
2015-05-20 23
2015-05-20 23
2015-05-21 24
2015-05-21 00
2015-05-21 01
2015-05-21 01
我看到的问题是&#34; 2015-05-21 24&#34;该日期不应格式化为&#34; 2015-05-20 24&#34;。
感谢您的澄清。
编辑:在回答Dan Getz时,我尝试创建迭代的文件名如下:
2015052023.txt
2015052024.txt
2015052101.txt
答案 0 :(得分:1)
在某一天,依赖于时区,与写小时的方式无关。因此,如果日期是21日,则日期是21日,故事结束。将“12am”写为“00”或“24”与此无关。
也许你忘记了一小时有60个不同的分钟?这不仅仅是时钟敲响午夜的第一瞬间,而是我们谈论的整整一个小时,这显然是下一个24小时工作日的一部分。
由于这种模糊性,我个人绝不会在12点之后使用24次。也许你可以编辑你的问题为什么你想用24作为时间?您的数据模型真的是时间戳到毫秒级或类似的吗?或者你希望存储和打印其他东西?