3

JSON YouTube 正在返回这种日期格式2010-07-12T08:22:07.000Z,我试图适应我的需求,但没有成功。中间的“T”和 .000Z 我不知道如何处理它们。

    NSDateFormatter *df = [[NSDateFormatter alloc] init];

    [df setDateFormat:@"yyyy-MM-ddTHH:mm:ss.ZZZZ"];

    NSDate *date = [df dateFromString: [videoDic valueForKey:@"fecha"]];

    [df setDateFormat:@"dd/MM/yyyy"];

    NSString *dateStr = [df stringFromDate:date];

谢谢

4

3 回答 3

18

根据本手册

片段publishedAtdatetime类型 将项目添加到播放列表的日期和时间。该值以ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) 格式指定。

根据 ISO 8601 格式,你可以这样写:

    dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
    dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";

其中SSS是三个字母的小数秒。Z表示 UTC 时间。

于 2013-05-05T20:41:03.870 回答
3

在通过 dateFormatter 运行之前尝试剥离字符串。

NSString *formattedString = [[videoDic valueForKey:@"fecha"] stringByReplacingOccurrencesOfString:@"T" withString:@""];

formattedString = [formattedString stringByReplacingCharactersInRange:NSMakeRange(18, 5) withString:@""];

NSDateFormatter *df = [[NSDateFormatter alloc] init];

[df setDateFormat:@"yyyy-MM-ddHH:mm:ss"];

NSDate *date = [df dateFromString: formattedString];

[df setDateFormat:@"dd/MM/yyyy"];

NSString *dateStr = [df stringFromDate:date];
于 2012-05-30T17:42:20.807 回答
2

setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.000'Z'" 为我工作

于 2012-10-05T15:10:27.857 回答