Mat*_*oal 2 nsdateformatter ios swift
我遇到了一个非常奇怪的问题,听起来更像是系统错误.我想仅使用小时和分钟信息格式化日期,并在必要时显示AM/PM.
这是我的代码:
extension NSDate {
func localizedStringTime()->String {
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale.currentLocale()
dateFormatter.dateFormat = "HH:mm"
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用HH而不是hh如Apple文档中所述,如果用户选择12h格式,它应自动添加AM/PM:
时间的表示可能是13:00.但是,在iOS中,如果用户已将24小时时间切换为关闭,则时间可能是下午1:00.
我发现它在我的设备上完美运行(我位于欧洲),但它不适用于美国设备和模拟器,即使用户选择12h格式,它仍然返回24h格式.我也尝试将我的地区改为美国,但是从我的设备上它仍能正常工作.
你看到我的代码有什么问题吗?无论如何,这个问题也是
您可以使用日期函数中的本地化字符串,如下所示...
extension NSDate {
func localizedStringTime()->String {
return NSDateFormatter.localizedStringFromDate(self, dateStyle: NSDateFormatterStyle.NoStyle, timeStyle: NSDateFormatterStyle.ShortStyle)
}
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特 3 和 4:
extension Date {
var localizedStringTime: String {
return DateFormatter.localizedString(from: self, dateStyle: .none, timeStyle: .short)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |