我有一个NSDate对象,我从中创建两个NSStrings:日期和时间.目前我将日期格式设置为20111031,时间格式为23:15.
我想做的是将其格式化为设备(iPhone,iPad,iPod Touch)当前区域设置(不是语言!).例如:
>设置为美国地区的设备将显示(从我的头顶)10.31.11和时间晚上11:15
>设置为荷兰地区的设备将显示:2011年10月31日和时间23.15
>设置为瑞典地区的设备将显示:2001-10-31和时间23:15
我怎样才能做到这一点?
解决方法
以下内容应该足够了,因为默认情况下NSDateFormatter具有手机的默认语言环境:
NSDate *date = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; [dateFormatter setDateStyle:NSDateFormatterShortStyle]; NSLog(@"%@",[dateFormatter stringFromDate:date]);
仅供参考,这是美国,荷兰和瑞典的情况:
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; NSLog(@"%@",[dateFormatter stringFromDate:date]); // displays 10/30/11 7:09 PM [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"nl_NL"]]; NSLog(@"%@",[dateFormatter stringFromDate:date]); // displays 30-10-11 19:09 [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"sv_SE"]]; NSLog(@"%@",[dateFormatter stringFromDate:date]); // displays 2011-10-30 19:09