Ios 带有格式字符串的NSDateFormatter以短样式输出时间
我们生产了一个iOS应用程序,我们使用一些自定义格式来表示内部日期 我存储了一个全局日期格式化程序,如下所示:Ios 带有格式字符串的NSDateFormatter以短样式输出时间,ios,swift,nsdateformatter,Ios,Swift,Nsdateformatter,我们生产了一个iOS应用程序,我们使用一些自定义格式来表示内部日期 我存储了一个全局日期格式化程序,如下所示: static var InternalDateFormatter: NSDateFormatter = { let dateFormatter: NSDateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyyMMdd HH':'mm" return dateFormatter }() s
static var InternalDateFormatter: NSDateFormatter = {
let dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd HH':'mm"
return dateFormatter
}()
static var InternalDateFormatter: NSDateFormatter = {
let dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd HH':'mm"
dateFormatter.timeZone = NSTimeZone.localTimeZone()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
return dateFormatter
}()
使用NSDate
实例2016-07-21T16:46:51+0000
时,预期输出为20160721 16:46
,但在2部手机中,输出为20160712下午4:41
该设备是带有iOS 9.3的iPhone 5。我试着在一台设备上安装,同一型号,同一iOS版本,结果是正确的
有人能让我看一下那里发生了什么吗?您应该将
时区和区域设置设置为日期格式化程序,如下所示:
static var InternalDateFormatter: NSDateFormatter = {
let dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd HH':'mm"
return dateFormatter
}()
static var InternalDateFormatter: NSDateFormatter = {
let dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd HH':'mm"
dateFormatter.timeZone = NSTimeZone.localTimeZone()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
return dateFormatter
}()
使用en\u US\u POSIX
locale ID将始终为您提供am-pm
US时间标准。
但您可以选择任何奇怪的区域设置ID-。您是否尝试过删除派生数据并将项目重建到受影响的设备上?默认情况下,NSDateFormatter的时区属性是系统的时区