即使我传递的字符串具有如下所示的日期,我也会得到空日期:-
通用输入日期格式为“MM/dd/YYYY hh:mm a”
NSString 输入日期可以是以下之一:“12/1/2012”、“12/1/2012 01:43 am”、“01:43 am”
我正在尝试的预期输出是,如果输入字符串中存在日期,则必须打印日期,如果输入字符串中存在时间,则必须打印时间。
输入:-
[self testDate:@"12/1/2012"]
代码:-
-(void) testDate:(NSString*) str{
NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/yyyy hh:mm a"];//My Generic Date Format
self.dateTest=[formatter dateFromString:str];
[self printDate:self.dateTest];
}
-(void) printSeparatedDateAndTime:(NSDate*) date{
NSDateFormatter *dateF=[[NSDateFormatter alloc] init];
[dateF setDateFormat:@"MM/dd/yyyy"];
NSString *dateStr=[dateF stringFromDate:date];
NSLog(@"Date= %@",dateStr);
[dateF setDateFormat:@"hh:mm a"];
NSString *timeStr=[dateF stringFromDate:date];
NSLog(@"Time= %@",timeStr);
}
输出日期:-
日期=(空)
时间=(空)
输入可以是任何格式,例如
输入
“12/1/2012”
输出
日期=“12/1/2012”时间=空
输入
"12/1/2012 01:43 am"
输出
日期="12/1/2012" 时间=01:43 am
输入
“01:43 am”
输出
日期=空时间=“01:43 am”
在这里Objective-C String(yyyy-mm-dd) 到 NSDate可以得到不同的答案。这是指日期格式设置错误时的回答。
在我的情况下,日期格式是正确的。但它可能只有日期、时间或两者都有。要从字符串中分离日期和时间,可以参考此处ios4 - 将日期和时间从字符串拆分为两个单独的字符串,但它没有经过检查的答案或有效答案。