首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何基于当前语言环境实现NSDateFormatter 12/24小时自动格式化

如何基于当前语言环境实现NSDateFormatter 12/24小时自动格式化
EN

Stack Overflow用户
提问于 2014-04-04 19:53:01
回答 2查看 1.3K关注 0票数 2

我被一个愚蠢的问题困住了。根据苹果的说法,在locale实例上设置NSDateFormatter属性会覆盖一些设置,例如用户是喜欢12小时格式还是24小时格式。使用当前区域设置初始化新创建的NSDateFormatter实例。WWDC 2011会议117讨论这个12/24小时的问题@ 54:00。下面是我使用的代码:

代码语言:javascript
复制
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]和一组不同的国家地区。同样的结果。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-04 20:15:35

尝试设置timeStyle而不是dateFormat:

代码语言:javascript
复制
formatter.timeStyle = NSDateFormatterShortStyle;
formatter.dateStyle = NSDateFormatterNoStyle;
票数 3
EN

Stack Overflow用户

发布于 2019-02-04 13:54:20

如果您更喜欢自己的格式(例如,您不希望显示包含在每个系统提供的日期样式中的年份),您可以在如下格式模板中使用j

代码语言:javascript
复制
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setLocalizedDateFormatFromTemplate:@"jjmm"];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22871877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档