相关疑难解决方法(0)

iOS:如果区域设置合适,以24小时格式显示时间?

我的iOS应用程序将显示当前时间.如何确定用户的区域设置是否更喜欢12小时或24小时格式化?

time locale ios

5
推荐指数
1
解决办法
2918
查看次数

NSDateFormatter时间格式取决于Locale

我遇到了一个非常奇怪的问题,听起来更像是系统错误.我想仅使用小时和分钟信息格式化日期,并在必要时显示AM/PM.

这是我的代码:

extension NSDate {

    func localizedStringTime()->String {

        let dateFormatter = NSDateFormatter()
        dateFormatter.locale = NSLocale.currentLocale()
        dateFormatter.dateFormat = "HH:mm"
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在使用HH而不是hh如Apple文档中所述,如果用户选择12h格式,它应自动添加AM/PM:

时间的表示可能是13:00.但是,在iOS中,如果用户已将24小时时间切换为关闭,则时间可能是下午1:00.

我发现它在我的设备上完美运行(我位于欧洲),但它不适用于美国设备和模拟器,即使用户选择12h格式,它仍然返回24h格式.我也尝试将我的地区改为美国,但是从我的设备上它仍能正常工作.

你看到我的代码有什么问题吗?无论如何,这个问题也是

nsdateformatter ios swift

2
推荐指数
2
解决办法
2482
查看次数

标签 统计

ios ×2

locale ×1

nsdateformatter ×1

swift ×1

time ×1