0

我正在使用以下代码。每次我得到一个空值的日期。

NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, YYYY"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"date %@",date);
4

3 回答 3

2

您传递的格式错误。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);
于 2013-06-12T09:12:31.433 回答
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
于 2013-06-12T12:50:19.323 回答
0
[dateFormat setDateFormat:@"MM/dd/yyyy"];
于 2013-06-12T09:12:41.567 回答