Xcode 9.0.1·Swift 4·iPhone 5s
要重新创建我在应用中遇到的问题,我创建了一个视图应用,并将以下三行代码添加到ViewController.viewDidLoad()
:
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm"
print(formatter.string(from: Date()))
然后该应用程序在我的iPhone上运行,我得到以下结果:
如果手机设置为24小时(设置>日期&时间> 24小时时间),则代码会在控制台中显示“07:45”。
如果在设置中关闭24小时时间,则在控制台中打印“上午7:45”。
问题:如何使输出与格式化设备保持一致,而不是手机设置?
答案 0 :(得分:2)
DateFormatter
使用系统的区域设置,但您可以自己设置它以覆盖默认值。您可以像这样设置格式化程序的语言环境:
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm"
formatter.locale = Locale(identifier: "en_US_POSIX") // This uses am/pm, use a different locale for 24-hour
print(formatter.string(from: Date())) // Prints "12:23"
你可以像这样强制时间格式:
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm"
formatter.setLocalizedDateFormatFromTemplate("HH:mm")
print(formatter.string(from: Date())) // Prints "09:47"
formatter.setLocalizedDateFormatFromTemplate("hh:mm")
print(formatter.string(from: Date())) // Prints "9:47 AM"
答案 1 :(得分:0)
将dateFormat更改为 HH:mm aa :
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm aa"
print(formatter.string(from: Date()))
输出:( 24小时格式打开/关闭)
上午11:14