【发布时间】:2013-01-30 17:44:00
【问题描述】:
NSDateFormatter 是否有一个日期格式字符串可以检测基于 12 或 24 和 1 或 0 的小时格式?
除非我读错了,否则 Unicode 规范说可以为此使用“j”。例如,以下应使用 1-12、0-23 或 1-24 小时,具体取决于语言环境,但 NSDateFormatter 只会创建一个空字符串。
NSDateFormatter *minuteFormatter = [[NSDateFormatter alloc] init];
minuteFormatter.locale = [NSLocale currentLocale];
minuteFormatter.dateFormat = @"jj";
我看到很多建议使用以下内容来正确解释用户的语言环境,但我只想要一个包含小时的字符串,而不必解析结果字符串。
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];
【问题讨论】:
-
实际上,在大多数情况下,日期格式化程序会自动切换,覆盖格式化字符串。最新的 Unicode 规范难以辨认。
-
我可以选择 hh 或 HH 以及其他一些选项。 hh 打印 1-12,HH 打印 0 - 24,两者都与语言环境无关。您是说 NSDateFormatter 会覆盖这些设置吗?
-
在某些情况下,是的,iOS 会忽略该格式。
-
我仔细研究了一下。只有在设置中的 12/24 开关被 iOS 覆盖(忽略)格式的情况下。但是,阅读规范,我无法理解“j”应该是什么意思。
标签: ios nsdateformatter