在模拟器和本地设备上获取不同的时间格式 - Swift iOS
Getting different time formats on simulator and local devices - Swift iOS
我正在尝试从 Date()
获取 String
日期,如下所示:
func today() -> String {
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
return dateFormatter.string(from: date)
}
但输出与我在模拟器和本地设备上 运行 时不同:
在本地设备上输出 - “2019 年 11 月 24 日”
在模拟器上 iPhone 8 输出 - "Nov 24, 2019"
*当我使用模板中的日期格式(例如 "MMMMd-yyyy" )时,结果仍然因设备和模拟器而异。
提前致谢。
您得到不同结果的原因是您的 mac(模拟器)和 iPhone 的语言环境不同,并且 DateFormatter 依赖于语言环境将日期转换为字符串。当您不给 DateFormatter 明确的语言环境时,它会使用您的设备,因此如果您需要相同的结果,请设置语言环境。
func today() -> String {
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.locale = Locale.init(identifier: "en_US")
return dateFormatter.string(from: date)
}
这是一个有趣的网站,可以检查不同的结果。
https://nsdateformatter.com
我正在尝试从 Date()
获取 String
日期,如下所示:
func today() -> String {
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
return dateFormatter.string(from: date)
}
但输出与我在模拟器和本地设备上 运行 时不同:
在本地设备上输出 - “2019 年 11 月 24 日”
在模拟器上 iPhone 8 输出 - "Nov 24, 2019"
*当我使用模板中的日期格式(例如 "MMMMd-yyyy" )时,结果仍然因设备和模拟器而异。
提前致谢。
您得到不同结果的原因是您的 mac(模拟器)和 iPhone 的语言环境不同,并且 DateFormatter 依赖于语言环境将日期转换为字符串。当您不给 DateFormatter 明确的语言环境时,它会使用您的设备,因此如果您需要相同的结果,请设置语言环境。
func today() -> String {
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.locale = Locale.init(identifier: "en_US")
return dateFormatter.string(from: date)
}
这是一个有趣的网站,可以检查不同的结果。 https://nsdateformatter.com