gpt4 book ai didi

ios - DateFormatter 根据用户时间设置表现不同

转载 作者:搜寻专家 更新时间:2023-11-01 06:16:36 24 4
gpt4 key购买 nike

我遇到了一些特殊情况,我不确定它为什么会发生或如何处理它。

let formatter = DateFormatter()
formatter.dateFormat = "h:mma"
let timeString = "8:00am"
let date = formatter.date(from: timeString)!

如果用户将时间设置为使用 12 小时制,则此代码有效。如果他们将设备设置为 24 小时制,它就会崩溃。

如何让它独立于用户的设置工作?

最佳答案

您必须将语言环境更改为标准 POSIX 语言环境:

formatter.locale = Locale(identifier: "en_US_POSIX")

参见 technical note QA1480 :

On iOS, the user can override the default AM/PM versus 24-hour time setting (via Settings > General > Date & Time > 24-Hour Time), which causes NSDateFormatter to rewrite the format string you set, which can cause your time parsing to fail.

请注意,如果您不对数据进行解析/编码,则强制使用特定时间格式是不好的做法。如果您想向用户显示格式化时间,更好的解决方案是使用用户定义的格式:

let formatter = DateFormatter()
formatter.dateStyle = .none
formatter.timeStyle = .short

关于ios - DateFormatter 根据用户时间设置表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43451913/

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