我正在尝试以“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
以NSString开头,等于“2/22/11”。 dateTemp
结束NIL。 newInvoice.date
也会终止NIL。
我不能为我的生活找出原因。
答案 0 :(得分:25)
您遇到此问题,因为您的日期格式化程序不正确。假设您的newInvoice.date变量存储“11:02:23”您的dateFormatter应为@“yy:MM:dd”并且如果您的newInvoice.date变量存储“2/22/11”然后你的dateFormatter应该是@“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];
两种格式都应根据您的要求获得正确的结果
答案 1 :(得分:1)
这应该可以正常工作。我设置了日期样式。您可以将NSDateFormatterShortStyle
更改为其他内容。另请检查newInvoice.date格式。
NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateStyle: NSDateFormatterShortStyle];
dateTemp = [dateFormat dateFromString: newInvoice.date];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
newInvoice.date = [dateFormat stringFromDate:dateTemp];