【发布时间】:2010-09-20 17:57:33
【问题描述】:
我正在尝试使用用户的日期偏好来解析日期
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
NSDate *date = [ dateFormatter dateFromString:@"7/4/2008" ];
NSLog(@"string from date %@: %@ for locale %@", date, [dateFormatter stringFromDate:date], [[dateFormatter locale] localeIdentifier]);
当我将我的地区(在国际系统首选项中)设置为美国时,它会打印:
2008-08-14 20:20:31.117 Date Difference17226:10b string from date 2008-07-04 00:00:00 -0400: 7/4/08 for locale en_US
当我所在的地区是英国时,它会打印:
2008-08-14 20:19:23.441 Date Difference17199:10b string from date 2008-04-07 00:00:00 -0400: 07/04/2008 for locale en_GB
看起来 NSDateFormatter 对区域的变化不敏感。不过请注意,日期的原始打印会随着区域正确切换。
我必须做些什么才能让 NSDateFormatter 尊重区域设置?
【问题讨论】:
标签: objective-c cocoa macos internationalization date