我被一个愚蠢的问题困住了。根据苹果的说法,在locale实例上设置NSDateFormatter属性会覆盖一些设置,例如用户是喜欢12小时格式还是24小时格式。使用当前区域设置初始化新创建的NSDateFormatter实例。WWDC 2011会议117讨论这个12/24小时的问题@ 54:00。下面是我使用的代码:
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];
NSLog(@"%@",[formatter stringFromDate:date]);根据苹果的文档和WWDC会话,即使格式显式地设置为HH:mm,这也应该以用户首选的地区输出当前时间。但出于某种原因,我总是得到24小时的代表。我还尝试将地区设置为[NSLocale autoupdatingCurrentLocale]、[NSLocale currentLocale]和一组不同的国家地区。同样的结果。有什么想法吗?
发布于 2014-04-04 20:15:35
尝试设置timeStyle而不是dateFormat:
formatter.timeStyle = NSDateFormatterShortStyle;
formatter.dateStyle = NSDateFormatterNoStyle;发布于 2019-02-04 13:54:20
如果您更喜欢自己的格式(例如,您不希望显示包含在每个系统提供的日期样式中的年份),您可以在如下格式模板中使用j:
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setLocalizedDateFormatFromTemplate:@"jjmm"];https://stackoverflow.com/questions/22871877
复制相似问题