我正在尝试使用格式为“2/22/11”的nsstring日期并将其转换为以下格式:2011-02-22
这是我的代码:

NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
dateTemp = [dateFormat dateFromString:newInvoice.date];
newInvoice.date = [dateFormat stringFromDate:dateTemp];

newInvoice.date以等于“2/22/11”的nsstring开头。dateTemp结果为零。newInvoice.date结果也是零。
我一辈子都搞不懂为什么。

最佳答案

由于日期格式化程序不正确,您正面临此问题。假设您的newinvoice.date变量存储“11:02:23”,则日期格式化程序应为@“yy:mm:dd”,如果您的newinvoice.date变量存储“2/22/11”,则日期格式化程序应为@“mm/dd/yy”。

NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init];
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];

[dateFormat1 setDateFormat:@"MM/dd/yy"];
[dateFormat2 setDateFormat:@"yyyy-MM-dd"];

dateTemp = [dateFormat1 dateFromString:newInvoice.date];
newInvoice.date = [dateFormat2 stringFromDate:dateTemp];

两种格式都应符合您的要求,以获得正确的结果

10-07 12:48