本文档解释了您遇到的情况
简而言之,使用美国语言环境格式化您的日期,如果您希望向用户显示日期,请将日期转换为字符串。
例如:
NSString *strDate = @"05/29/2012 6:15PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
[formatter setDateFormat:@"MM/dd/yyyy h:mma"];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
NSDate *_date = [formatter dateFromString:strDate];
并向用户显示日期:
NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterShortStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
NSString *newDate = [formatter2 stringFromDate:_date];
进入应用程序的日期字符串通常应转换为标准格式,如果您想向用户显示日期,则需要将日期格式化回字符串 - 将它们视为单独的步骤:
- 将字符串转换为合理的日期格式
- 使用所需格式获取用户区域设置的日期