Ios 日期格式化程序不';t“的返回日期”;HH:mm:ss“;
以下是代码摘录:Ios 日期格式化程序不';t“的返回日期”;HH:mm:ss“;,ios,swift,date,swift3,Ios,Swift,Date,Swift3,以下是代码摘录: func mapping(map: Map) { time <- (map["time"], TransformOf<Date, String>(fromJSON: { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "HH:mm:ss" //dateFormatter.timeZone = TimeZone(abbr
func mapping(map: Map) {
time <- (map["time"], TransformOf<Date, String>(fromJSON: {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm:ss"
//dateFormatter.timeZone = TimeZone(abbreviation: "EEST")
if let argument = $0 {
let date = dateFormatter.date(from: argument)
return dateFormatter.date(from: argument)
}
return nil
}}
func映射(映射:映射){
时间从(增加强调):
另一方面,如果您使用的是固定格式的日期,您应该首先将日期格式化程序的区域设置为适合您的固定格式。在大多数情况下,最好选择“en_US_POSIX”,这是一个专门设计用于生成美国英语结果的区域设置,无论用户和系统偏好如何
这将防止日期被根据
用户的区域设置:
let dateFormatter = DateFormatter()
// Set the locale first ...
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
// ... and then the date format:
dateFormatter.dateFormat = "HH:mm:ss"
// ...
另请参见。您可能必须将格式化程序的区域设置设置为“en_US_POSIX”,例如,请参阅或。该应用程序将不会在美国使用,即使是这样,我也不希望它为en_US进行本地化。此外,我检查了模拟器和ipod的设置,两者都是相同的。@Bymaf:如果它有区别,你至少试过了吗?离题:如果我不理解此语法,我会用谷歌搜索什么:`time@MartinR我试过了工作正常,但返回的值与模拟器正常返回的值不同。两个UTC,在设备中提前1小时使用en_US_POSIX