ios - 如何强制将 NSDateFormatter 用作 12 小时或 24 小时格式?

标签 ios swift ios9 nsdateformatter swift2

我的 iOS 应用会将时间从时间戳格式化为时间字符串。 我想在应用程序中提供一个设置,该设置将覆盖系统的 12/24 小时格式。

我尝试过的:

 self.timeFormatter.timeStyle = NSDateFormatterStyle.ShortStyle;
 let locale:NSLocale = NSLocale.currentLocale();
 if(Constants.isFormat12()){
     timeFormatter.dateFormat = NSDateFormatter.dateFormatFromTemplate("hh:mm", options: 0, locale: locale);
 }else{
     timeFormatter.dateFormat = NSDateFormatter.dateFormatFromTemplate("HH:mm", options: 0, locale: locale);
 }

如果系统是 12 小时格式,但不是 24 小时格式,此代码将起作用。

我读了一些关于 stackoverflow 的帖子,他们建议将 NSDateFormatter 的语言环境设置为 en_US_POSIXen_GB 这样时间就会格式化以 12 或 24 小时格式。

    if(Constants.isFormat12()){
        timeFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX");
        timeFormatter.dateFormat = "hh:mm a";
    }else{
        timeFormatter.locale = NSLocale(localeIdentifier: "en_GB");
        timeFormatter.dateFormat = "HH:mm";
    }

但是,12 小时格式将显示 AMPM,而不是不同语言的“AM”和“PM”的本地化版本,例如“上午” "& "下午"in Chinese.

有没有办法强制 NSDateFormatter 使用 12/24 小时制?

最佳答案

有什么问题吗?

import Foundation

let formater = NSDateFormatter()
formater.setLocalizedDateFormatFromTemplate("hh.mm")
let time = NSDate()           // "17 Nov 2015 14:42"
formater.stringFromDate(time) // "2:42 PM"
formater.setLocalizedDateFormatFromTemplate("HH:mm")
formater.stringFromDate(time) // "14:42"

..中文

import Foundation

let formater = NSDateFormatter()
formater.setLocalizedDateFormatFromTemplate("hh.mm")
let time = NSDate()           // "17 Nov 2015 15:05"
formater.locale = NSLocale(localeIdentifier: "zh_CN")
formater.stringFromDate(time) // "3:04 下午"
formater.setLocalizedDateFormatFromTemplate("HH:mm")
formater.stringFromDate(time) // "15:05"

关于ios - 如何强制将 NSDateFormatter 用作 12 小时或 24 小时格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33326245/

相关文章:

ios - CMotionManager 在实例化时崩溃

ios - 为神经科学项目研究目的构建 'DrawSomething' 风格的应用程序

ssl - iOS9 更新 AFNetworking 调用以使用 HTTPS(错误 -1200、-9824)的正确方法是什么?

swift - swift中各种类型变量声明的区别

ios - 比较字符串的问题

ios - 自定义 Swift Search 图标,可打开搜索栏覆盖层

ios - 如何在 UIView 中添加 subviews.count 的观察者?

ios - 从具有不同过渡动画的 UIImage 数组制作视频

syntax - 使用 NSDictionary 的 Swift 可选链接

iOS 9 Swift UIButton CheckBox 子类不显示图像