【发布时间】:2012-09-28 11:07:32
【问题描述】:
这是一个愚蠢的问题,但我看不出我做错了什么。我想将24:00 之类的字符串解析为日期对象。我知道如果我们使用kk:mm 作为日期格式,则时间将从 01:00 到 24:00 (from the API)。但我无法让下面的代码工作。
String test = "24:00";
System.out.println("TEST: " + new SimpleDateFormat("kk:mm").parse(test));
输出:
TEST: Thu Jan 01 00:00:00 GMT 1970
预期输出:
TEST: Thu Jan 01 24:00:00 GMT 1970
编辑:
System.out.println("TEST: " + new SimpleDateFormat("k:mm:ss").format(new SimpleDateFormat("k:mm:ss").parse(test)));
这打印TEST: Thu Jan 01 24:00:00 GMT 1970
但是为什么不在解析的时候呢?
非常感谢任何帮助
【问题讨论】:
-
尝试通过“kk:mm”输出“Thu Jan 01 00:00:00 GMT 1970”,你会看到:)
-
@Fildor 当然,它就是这样工作的。但为什么不在解析时呢?
-
它确实有效。但是 DateTime 对象不能保存“24:00”。现在是 00:00 - 23:59。当使用“k”格式化时,它将输出 00:00 为 24:00,但内部仍为 00:00。这有点像使用 AM/PM 或 24 小时制。内部表示相同 - 不同的输出。
-
@Fildor 啊,现在我明白了.. tahnsk :)
-
我其实有点草率,+1 @jalynn2 的准确解释。
标签: java parsing date date-format simpledateformat