【问题标题】:Swift how to get 12 hours format if system is 24 hour format [duplicate]如果系统是 24 小时格式,Swift 如何获得 12 小时格式 [重复]
【发布时间】:2016-12-02 15:30:26
【问题描述】:

我的 iPhone 设备系统设置为 24 小时制我想获得 12 小时制,即:23:27 获取 11:27 PM

我试过了:

            let today = NSDate()
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = "hh:mm a"
            let string = dateFormatter.string(from: today as Date) // 23:27

得到23:27 字符串。

我发现了这个:How to get 12 hour format time string when system is set to use 24 hour format

            let today = NSDate()
            let dateFormatter = DateFormatter()
            let dateFormat = DateFormatter.dateFormat(fromTemplate:"hh:mm a", options: 0, locale: NSLocale.current)
            dateFormatter.dateFormat = dateFormat
            let string = dateFormatter.string(from: today as Date) //23:27 i want 11:27 pm

但它不起作用我仍然得到23:27字符串而不是11:27pm字符串。

谢谢!

编辑: 根据shallowThought的回答不确定Locale是不是这样?

EDIT2 添加这个:

dateFormatter1.locale = Locale(identifier: "en_US_POSIX")

有效。我当前的语言环境是en_CN

【问题讨论】:

  • 我已经运行了你的代码并且在string变量中有9:34 PM
  • @ArtemNovichkov 看我的截图。
  • 我很确定这个链接可以解决您的问题。如果没有,请编辑您的问题,说明为什么它没有帮助,如有必要,我们可能会重新提出问题。谢谢。

标签: ios swift


【解决方案1】:

您的代码在 iPhone6、iOS 10.1.1 上运行良好,日期设置为 24 小时:

override func viewDidLoad() {
    super.viewDidLoad()

    let today = NSDate()
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "hh:mm a"
    let string = dateFormatter.string(from: today as Date)
    print(string)
}

打印:

04:38 PM

【讨论】:

  • 查看我的附加图片。它是有线的。
  • 发布更多信息。 iOS 版本也一样。
  • 它不适合我
  • @PatelJigar 检查您设备的区域设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 2021-08-05
相关资源
最近更新 更多