NSSate到NSDate问题IOS7

时间:2013-08-10 13:20:08

标签: iphone nsstring nsdate nsdateformatter ios7

我正在使用以下代码将NSString转换为NSDate

NSDate *date = [NSDate convertStringToDate:strDate andFormatter:@"MM dd"];

+ (NSDate *)convertStringToDate:(NSString *)dateString andFormatter:(NSString *)formatter
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    // this is imporant - we set our input date format to match our input string
    // if format doesn't match you'll get nil from your string, so be careful
    [dateFormatter setDateFormat:formatter];

    dateFormatter.timeZone = [NSTimeZone systemTimeZone];

    return [dateFormatter dateFromString:dateString];
}

NSString是@"07 15"。但我的NSDate是nil。在模拟器上它很好但在iOS7的设备上它是零。

你有什么建议吗?

2 个答案:

答案 0 :(得分:3)

如果您的代码在iOS 6中有效,那么这可能只是iOS 7中的一个错误。如果您认为是这种情况,请务必提交错误报告。

如果它在iOS 6中不起作用,则可能是月份和日期不足以指定日期。尝试添加一年,看看你是否有这样的有效日期。

请注意,有关iOS 7的问题应发布到Apple的开发人员论坛,而非此处。

答案 1 :(得分:2)

您可能需要像这样设置语言环境:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];

我解决了这个问题,包括格式化程序的语言环境。 希望这有帮助。