gpt4 book ai didi

ios - 转换后的无效日期 12h -> 24h

转载 作者:可可西里 更新时间:2023-11-01 01:32:18 25 4
gpt4 key购买 nike

我想将 AM/PM 时间转换为 24 小时制。那应该是完全微不足道的……但是我反对一个奇怪的问题:

let inputDateString = "11:05:45PM"

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm:ssa"
let inputDate = dateFormatter.dateFromString(inputDateString) // "Jan 1, 2000, 12:05 PM" ???

if let inputDate = inputDate {
dateFormatter.dateFormat = "HH:mm:ss"
print(dateFormatter.stringFromDate(inputDate))
}
  1. 我认为它可能会使用一些奇怪的时区来转换时间。所以我尝试添加 systemLocale 或 GB 语言环境,但没有帮助。
  2. 然后我想出了一个主意,也许它不能将日期设置在 01.01.2000 12:00:00 之前(这是没有意义的,因为它至少应该从 ~1970 年开始工作)。所以我添加了日期、月份等以将其移至 2005 年,但问题仍然存在。

您可以使用 import Foundation 轻松地将其粘贴到 Playground 以进行测试。

为什么我弄错了时间?

-- 编辑--

如果您将 inputDateString 更改为任何其他时间,例如 "01:05:45PM"inputDate 将是相同的:/但是如果您更改分钟或秒,它会相应更新。

最佳答案

您需要将日期格式更改为 "hh:mm:ssa" , 作为小写 h表示输入时间为 12 小时格式。

DateFormatter 使用 Unicode 标准进行格式化,因此它使用在 the Unicode Documentation 中找到的值(自 08/2016 起适用于 macOS 10.9 和 iOS 7 及更新版本)。

可在 http://nsdateformatter.com 上找到更易于使用的引用资料.

关于ios - 转换后的无效日期 12h -> 24h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39102648/

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