一尘不染

将NSDate快速转换为24h格式在设备上失败

swift

在iPhone6上运行应用程序时,我遇到了一个烦人的错误。
我需要将一个小时(由datePicker选择)从12h转换为24h格式。
简单的事情!是的,我对此非常确定,但是…我的代码可在模拟器上运行,但不能在设备上运行。
代码如下:

func convertTimeTo24HoursFomratString() -> String {
        let dateFormatter = NSDateFormatter()
        // isFormatTime24Hours is a static function that returns me if the device has a 24h clock or not. It works fine both on device and on simulator
        //if NSDateUtility.isFormatTime24Hours() {
        //    dateFormatter.dateFormat = "h:mm a"
        //    return dateFormatter.stringFromDate(self)
        //}

        dateFormatter.dateFormat = "HH:mm"
        return dateFormatter.stringFromDate(self)
}

我在哪里做错了?
iOS版本到处都是9.1。
预先感谢您的任何回答!

[Paul.s问题后的编辑]
在模拟器上,它返回24小时格式化的日期(右)。
在设备上,它返回12h格式化日期(错误)。


阅读 182

收藏
2020-07-07

共1个答案

一尘不染

QA1480:将自己设置为的格式化者的语言环境en_US_POSIX。否则,您设备的语言环境会影响日期格式。

2020-07-07