如果系统是24小时格式,Swift如何获得12小时格式

时间:2016-12-02 15:30:27

标签: ios swift

我的iPhone设备系统设置为24小时格式我希望获得12小时格式,即: 23:27 获取 11:27 PM

我试过了:

            let today = NSDate()
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = "hh:mm a"
            let string = dateFormatter.string(from: today as Date) // 23:27

获得23:27字符串。

我发现了这个:How to get 12 hour format time string when system is set to use 24 hour format

            let today = NSDate()
            let dateFormatter = DateFormatter()
            let dateFormat = DateFormatter.dateFormat(fromTemplate:"hh:mm a", options: 0, locale: NSLocale.current)
            dateFormatter.dateFormat = dateFormat
            let string = dateFormatter.string(from: today as Date) //23:27 i want 11:27 pm

但它不起作用我仍然有23:27字符串而不是11:27pm字符串。

谢谢!

修改: 根据{{​​1}}的回答,不确定shallowThought是否属于这种情况?

enter image description here

EDIT2 加上这个:

Locale

的工作原理。我当前的语言环境是dateFormatter1.locale = Locale(identifier: "en_US_POSIX")

1 个答案:

答案 0 :(得分:4)

您的代码在iPhone6,iOS 10.1.1上运行正常,日期设置为24小时:

override func viewDidLoad() {
    super.viewDidLoad()

    let today = NSDate()
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "hh:mm a"
    let string = dateFormatter.string(from: today as Date)
    print(string)
}

打印:

04:38 PM