我有一个 NSDate 对象,我从中创建了两个 NSString:日期和时间。目前我将日期格式化为 20111031,将时间格式化为 23:15。
我想做的是将其格式化为设备(iPhone、iPad、iPod Touch)当前区域设置(不是语言!)。例如:
- 设置为美国地区的设备会显示(从我的头顶)10.31.11 和时间晚上 11:15
- 设置为荷兰地区的设备将显示:31-10-2011 和时间 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
关于ios - 在设备当前区域设置后格式化日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7941789/