字符串到日期和时间

时间:2014-07-17 12:48:57

标签: ios objective-c datetime

您好我将字符串转换为日期时遇到了问题,并且日期只是字符串的时间。 结果为空。

这就是我在做的事情:

我有一本字典,里面有时间:

@"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];

值为空。

我的错误在哪里?

4 个答案:

答案 0 :(得分:3)

您正在设置字符串日期格式错误,请使用Bellow代码检查:

  NSString *str=@"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);

答案 1 :(得分: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 :(得分: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]);

它在工作。我希望这对你有用。

答案 3 :(得分:1)

将日期格式设置为[timeFormat2 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];我还应该在下次处理此类问题时建议reading this document