【发布时间】:2015-10-31 11:36:23
【问题描述】:
当我在 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 question 后编辑]
在模拟器上,它返回 24 小时格式的日期(右)。
在设备上,它返回 12 小时格式的日期(错误)。
【问题讨论】:
-
您在设备上与 sim 上获得的结果有何不同?
-
设备的区域设置是否与模拟器不同?例如,您可能住在意大利,而模拟器设置为美国。不同的语言环境可以从 NSDateFormatter 给出不同的结果。如果您认为这可能是问题所在,请尝试将 NSDateFormatter 的 locale 属性更改为静态属性。
-
@icant 所以,我的
NSDateUtility.isFormatTime24Hours返回我false,在设备和模拟器上都运行。所以我认为问题不在这里。不是吗? -
如果您只想要 24 小时,为什么您的代码会分支并提供两种不同的格式?你怎么知道你的
isFormatTime24Hours是正确的? -
@Paul.s 调试和检查
isFormatTime24Hours' 值。我知道我的设备时钟格式是 12 小时,所以我知道它是否正确。我刚刚意识到我已经粘贴了“如果”,这是我绝望的测试:) 我将在主帖中发表评论
标签: ios swift nsdate nsdateformatter