我正在使用以下代码。每次我获得日期的空值。
NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, YYYY"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"date %@",date);
答案 0 :(得分:2)
您传递的格式错误。 NSDateFormatter
使用date format patterns from UNICODE。所以纠正格式,并将正常工作。在这里你可以试试这个:
NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/YYYY"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"date %@",date);
此外,还要更好地了解Apple's Date Formatting guide。
修改强> 我从你的一些评论中发现,你要做的是改变格式,但你的问题并不意味着。如果您尝试更改格式,则需要在将dateformatter格式设置为所需格式后将其转换回NSString。将其添加到底部并检查:
[dateFormat setDateFormat:@"MMM, dd,yyyy"];
NSString *dateStrinfFormated = [dateFormat stringFromDate:date];
NSLog(@"Date in required format: %@",dateStrinfFormated);
答案 1 :(得分:2)
从您的date format
获取一些有效的NSString
,然后重新转换,以获得您想要的输出,
NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSDate *validDate = [dateFormat dateFromString:dateStr];
NSLog(@"Valid Date %@",validDate); // 2013-06-09 18:30:00 +0000
[dateFormat setDateFormat:@"MMM, dd,yyyy"];
NSString *str = [dateFormat stringFromDate:validDate];
NSLog(@"Result String %@",str); // Jun, 10,2013
答案 2 :(得分:0)
[dateFormat setDateFormat:@"MM/dd/yyyy"];