我試圖使用用戶的日期喜好NSDateFormatter不會使用語言環境設置解析日期?
[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尊重區域設置?