我正在使用以下代码将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的设备上它是零。
你有什么建议吗?
答案 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"];
我解决了这个问题,包括格式化程序的语言环境。 希望这有帮助。