日期格式不一致

时间:2017-10-26 06:58:24

标签: ios swift date xcode9 swift4

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”。

问题:如何使输出与格式化设备保持一致,而不是手机设置?

2 个答案:

答案 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