我知道这将是一个愚蠢的问题,但我尝试了一切,但仍然无法实现我想做的事。
这是我的问题:
我想检查两个时间值和一个日期,我有这样的时间字符串" 05.30 AM"。 我想将它转换为时间格式[如果我可以完全按照它现在的方式转换,那就更好了]。 我知道有一种方法可以比较两个时间值:
NSComparisonResult result = [date1 compare:date2];
。
我已经按照下面的代码将我的字符串值转换为时间格式,但它只返回null。
请指导我解决这个问题:
NSString* tim = @"11:12 AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterShortStyle];
NSDate *formatedTime= [formatter dateFromString:tim];
NSLog(@"TIME : %@",formatedTime);
答案 0 :(得分:1)
对于这种特殊情况(tim
按照您的方式格式化),您只缺少一行:[formatter setDateStyle:NSDateFormatterNoStyle];
这会告诉formatter
不要在date
中查找NSString* tim = @"11:12 AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateStyle:NSDateFormatterNoStyle];
NSDate *formatedTime= [formatter dateFromString:tim];
NSLog(@"TIME : %@",formatedTime);
你的字符串。
{{1}}
答案 1 :(得分:0)
您需要设置格式。
[formatter setDateFormat:@"hh:mm a"];
答案 2 :(得分:0)
NSString* tim = @"11:12 AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm a"];
NSDate *formatedTime= [formatter dateFromString:tim];
NSLog(@"TIME : %@",formatedTime);
但你会收到
时间:1999-12-31 23:12:00 +0000
因为年份未知。
答案 3 :(得分:0)
首先,你需要像这样格式化你的字符串
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss ZZZ";
[formatter dateFromString:@"Fri, 25 Jan 2014 5:30:22 +0000"];