gpt4 book ai didi

java - 为什么 SimpleDateFormat HH 与 hh 的工作方式不同

转载 作者:太空宇宙 更新时间:2023-11-04 14:19:56 33 4
gpt4 key购买 nike

    final String sourceDate = "05.12.2014 12:17";
final String testDate = "05.12.2014 13:17";
final SimpleDateFormat originalSDF = new SimpleDateFormat("dd.MM.yyyy hh:mm");
final SimpleDateFormat testSDF = new SimpleDateFormat("dd.MM.yyyy HH:mm");

System.out.println(originalSDF.parse(sourceDate).toString());
System.out.println(testSDF.parse(sourceDate).toString());
System.out.println("=====================");
System.out.println(originalSDF.parse(testDate).toString());
System.out.println(testSDF.parse(testDate).toString());

输出将是:

Fri Dec 05 00:17:00 GMT 2014
Fri Dec 05 12:17:00 GMT 2014
=====================
Fri Dec 05 13:17:00 GMT 2014
Fri Dec 05 13:17:00 GMT 2014

为什么对于所有时间,这种格式的工作原理都是相同的,但是对于 12:* ,它的工作原理不同,hh:mm 解析为 12h 格式和 HH:mm 解析为 24h 格式?

prooflink

最佳答案

如果您使用originalSDF.setLenient(false),那么解析"05.12.2014 13:17"将抛出异常......基本上在宽松模式下,hh 当值大于 12 时(也可能为 0),被视为 HH(即 24 小时值)。 p>

我个人认为默认为宽松模式是一个坏主意,但这是另一回事......基本上您的格式应该始终适合您的数据。如果您要获得 13:17 的值,则应使用 HH:mm。

关于java - 为什么 SimpleDateFormat HH 与 hh 的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27313028/

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