0

我正在使用以下代码转换NSStringNSDate

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 设备上它是零。

你有什么建议吗?

4

2 回答 2

3

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

如果它在 iOS 6 中不起作用,那么可能是一个月和一天不足以指定日期。尝试添加一年,看看您是否以这种方式获得有效日期。

请注意,有关 iOS 7 的问题应发布到 Apple 的开发者论坛,而不是此处。

于 2013-08-10T14:58:47.677 回答
2

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

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

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

于 2013-10-04T16:55:52.120 回答