根据 iPhone 中的设置(13:00 vs 1:00PM)将时间转换为字符串格式 Swift

Convert time to string format based on iPhone settings (13:00 vs 1:00PM) in Swift

我目前有一个表示当天小时的整数变量,我是这样计算的:

let tz = NSTimeZone.defaultTimeZone()
let now = NSCalendar.currentCalendar().componentsInTimeZone(tz, fromDate: NSDate())
let currHour: Int = now.hour //6 for 6:35PM (current time)

如何根据 iPhone 的当前时间设置将其转换为字符串。例如,我的 phone 设置为 24 小时制,而另一个 iPhone 则不是。以星巴克应用程序为例,查看本地商店,它会在我的 phone 上显示 "Open until 22:00" 或在另一个 phone.

上显示 "Open until 10:00PM"

默认时区在应用程序委托中设置为 America/New_York。

NSDateFormatter 会自动执行此操作。只需将 timeStyle 设置为 .ShortStyle

let formatter = NSDateFormatter()
formatter.dateStyle = .NoStyle
formatter.timeStyle = .ShortStyle
let timeString = formatter.stringFromDate(NSDate())

timeString 的值将适用于用户的区域设置及其设备设置。