我正在使用以下代码。每次我得到一个空值的日期。
NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, YYYY"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"date %@",date);
我正在使用以下代码。每次我得到一个空值的日期。
NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, YYYY"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"date %@",date);
您传递的格式错误。NSDateFormatter
使用来自 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 的日期格式指南。
编辑: 我从你的一些评论中发现你想要做的是改变格式,但你的问题并不是那个意思。如果您尝试更改格式,则需要在将 dateformatter 格式设置为所需格式后将其转换回 NSString。将此添加到底部并检查:
[dateFormat setDateFormat:@"MMM, dd,yyyy"];
NSString *dateStrinfFormated = [dateFormat stringFromDate:date];
NSLog(@"Date in required format: %@",dateStrinfFormated);
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
[dateFormat setDateFormat:@"MM/dd/yyyy"];