ユーザーの日付設定を使用して日付を解析しようとしています
[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がリージョン設定を尊重するようにするにはどうすればよいですか?