2014-07-17 62 views
1

你好,我有麻烦转换字符串日期和日期字符串只有时间。 结果为空。字符串日期和时间

下面是我在做什么:

我有一本字典,随着时间的推移它:

@"Time" : @"2014-07-17T10:38:00+03:00" 

我这样做:

NSDateFormatter *timeFormat2 = [[NSDateFormatter alloc] init]; 
[timeFormat2 setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; 
NSDate *date = [timeFormat2 dateFromString:[JSON valueForKey:@"Time"]]; 

然后将此:

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; 
[timeFormat setDateFormat:@"HH:mm:ss"]; 
NSLog(@"%@",[timeFormat stringFromDate:date]); 
cell.iboTimeLabel.text = [timeFormat stringFromDate:date]; 

并且该值为空。

我的错误在哪里?

+1

删除TimeString中的所有单引号并尝试。 –

+1

你可以试试这个:[timeFormat2 setDateFormat:@“yyyy-MM-ddTHH:mm:ssZ”];?目前在这里运行Windows ... – Akaino

+0

Akaino,没有不加引号不起作用 – Cheese

回答

2

删除时间字符串中的单引号并尝试。使用以下日期格式化程序。

NSDateFormatter *timeFormat2 = [[NSDateFormatter alloc] init]; 
[timeFormat2 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; 
NSDate *date = [timeFormat2 dateFromString:@"2014-07-17T10:38:00+03:00"]; 
+2

想到了相同的^^你稍微快一点:P – Akaino

3

你设置你的字符串日期的格式错误检查与娄代码:

NSString *[email protected]"2014-07-17T10:38:00+03:00"; 

    NSDateFormatter *timeFormat2 = [[NSDateFormatter alloc] init]; 
    [timeFormat2 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; 
    NSDate *date = [timeFormat2 dateFromString:str]; 


    [timeFormat2 setDateFormat:@"HH:mm:ss"]; 

    NSString *final = [timeFormat2 stringFromDate:date]; 
    NSLog(@"%@",final); 
+0

谢谢。但苏雷什是第一个有正确答案的人。我会投票给你的。 – Cheese

1

尝试用这种格式

NSDateFormatter *timeFormat2 = [[NSDateFormatter alloc] init]; 
[timeFormat2 setDateFormat:@"yyyy-MM-dd'T'hh:mm:ssZZZZZ"]; 
NSDate *date = [timeFormat2 dateFromString:@"2014-07-17T10:38:00+03:00"]; 


NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; 
[timeFormat setDateFormat:@"HH:mm:ss"]; 
NSLog(@"%@",[timeFormat stringFromDate:date]); 

它的工作。我希望这是为你工作。

+0

谢谢。但苏雷什是第一个有正确答案的人。我会投票给你的。 – Cheese

+2

尽管它已经足够清晰,您还没有回答这个问题。一个好回合值得另一个... – trojanfoe

1

将日期格式设置为[timeFormat2 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];应该做的伎俩,我建议reading this document下次你处理这样的问题。