iOS开发之NSDateFormatter的NSLocale使用en_US_POSIX还是en_US

iOS SDK中的日期时间格式化,通常使用en_US或en_US_POSIX。尽管两者效果相似,但Apple建议使用"en_US_POSIX",因为它不受时间和地点影响,保证一致性。本文通过代码示例展示了两种格式的使用,并引用Apple官方文档解释了原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS SDK提供的日期时间格式化对象需要使用到NSLocale对象来控制日期和时间的显示,en_US为标准的格式往往使用的最多,但是习惯使用Java或C#的朋友会忽略掉iOS SDK提供的另一种格式en_US_POSIX,并且两种格式运行后的效果完全一样。





参考代码;



NSDateFormatter *formatter1 = [[[NSDateFormatter alloc] init] autorelease];

[formatter1 setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];

NSDateFormatter *formatter2 = [[[NSDateFormatter alloc] init] autorelease];

[formatter2 setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];



[formatter1 setDateFormat:@"yyyy/MM/dd HH:mm:ss"];

[formatter2 setDateFormat:@"yyyy/MM/dd HH:mm:ss"];



NSDate *date = [NSDate date];

NSLog(@"formatter1:%@",[formatter1 stringFromDate:date]);

NSLog(@"formatter2:%@",[formatter2 stringFromDate:date]);





到底使用en_US_POSIX还是en_US, Apple在SDK文档中给出了答案.



In most cases the best locale to choose is "en_US_POSIX"



因为



"en_US_POSIX" is also invariant in time (if the US, at some point in the future, changes the way it formats dates, "en_US" will change to reflect the new behaviour, but "en_US_POSIX" will not), and between machines ("en_US_POSIX" works the same on iPhone OS as it does on Mac OS X, and as it it does on other platforms).





参考链接

http://stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-with-the-nsdateformatter-locale-feature

http://developer.apple.com/library/ios/#qa/qa1480/_index.html
--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题: iOS开发之NSDateFormatter格式化日期NSLocale使用en_US_POSIX还是en_US
- 独立博客: 李大仁博客
- 永久链接:http://www.lidaren.com/archives/811
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值