最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
iOS NSDateFormatter的NSLocale使用en_US_POSIX还是en_US
时间:2013-10-24 编辑:简简单单 来源:一聚教程网
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).