应用程序在设备时间为24小时格式时崩溃

Nan*_*rve 5 nsdate nsdateformatter swift

在我的应用程序中,如果iPhone设备时间是12小时格式化,则日期格式化程序正常工作,但如果设备时间是24小时格式,则应用程序崩溃.

 let dateFormatter = NSDateFormatter();
 dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle
 dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle;
 dateFormatter.dateFormat = "hh:mm a";
 var dt1 = dateFormatter.dateFromString(arrSecond.objectAtIndex(n) as! String)
Run Code Online (Sandbox Code Playgroud)

Nan*_*rve 15

@Rajan感谢您给我的想法NSLocale.我将dateformatter的语言环境标识符设置为" en_US_POSIX".我只是在分配日期格式化程序后在我的代码中添加以下行. dateformatter.locale = NSLocale(localeIdentifier:"en_US_POSIX") 谢谢你给出了这个想法


Ugo*_*lli 5

南迪尼答案是正确的。但是唯一的问题是,如果您对语言环境进行编码,则日期仅以英文显示。

就我而言,我想要用法语,这是一个在Swift 3中对我有用的解决方法:

dateformatter.locale = Locale(identifier: NSLocale.current.identifier)
Run Code Online (Sandbox Code Playgroud)