H:mm:ss 和 HH:mm:ss 在时间格式上有什么区别?

Ale*_*lar 2 vb.net

我试图弄清楚我的计算机上使用的时间格式是 12 小时格式还是 24 小时格式,并找到了这个解决方案:

Dim strFormat As String = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FullDateTimePattern
Run Code Online (Sandbox Code Playgroud)

结果是 yyyy'?'M'?'d'?' H:mm:ss

我在这个H:mm:ss和这个之间感到困惑HH:mm:ss

显示时间的格式有什么不同吗?

Dai*_*Dai 5

显示时间的格式有什么不同吗?

是的。

  • HH是24小时,用于小时前导零0-9
  • H是 24 小时,小时数没有前导零0-9
    • 使用H不符合 ISO 8601。ISO 8601 需要带前导零的 2 位日期和时间组件。

所以如果当前时间是0945h那么H:mm将渲染9:45

所以如果当前时间是0945h那么HH:mm将渲染09:45

所以如果当前时间是1945h那么H:mm将渲染19:45

所以如果当前时间是1945h那么HH:mm将渲染19:45


其他重要说明:

  • M并且MM是几个月,而不是几分钟。
  • m并且mm是几分钟而不是几个月。
    • 很少有(如果有的话)使用的理由m,所以总是使用mm!
  • h 是 12 小时制,没有前导零。
    • 每当您使用时,h您必须使用tt来表示 AM/PM,否则您将有不明确的输出。
  • hh 是 12 小时制,带前导零。
    • 避免使用,hh因为(我相信)今天人们期望使用 24 小时制的两位数时间。
    • 与 一样h,您还必须使用tt以避免 AM/PM 歧义。