0

Вопрос по iphone – NSDate из NSString - dateFromString возвращает ноль

Я хочу получить объект NSDate из строки даты, но он возвращает ноль. Что я делаю неправильно? Спасибо!

NSString *dateString = @"2012-04-05T13:27:32.369Z";

NSDateFormatter* df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss.SSSZ"];
NSDate* date = [df dateFromString:dateString];
NSLog(@"1%@",date);
[df release];
  • & Quot; гггг-ММ-дд & APOS; Т & APOS; HH: MM: ss.SSSZ & Quot; все еще возвращает ноль.

    от
  • Поместите Z в одинарные кавычки.

    от Hot Licks
  • Я согласен с Адхирой.

    от Nilesh
  • 0

    Используйте NSDateFormatter

    чтобы получить NSDate, затем используйте - (NSTimeInterval) timeIntervalSince1970, чтобы получить секунды с 1970 года.

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
    [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
    NSDate *date = [formatter dateFromString:@"2012-04-05T13:27:32.369Z"];
    NSLog(@"Date: %@", date);
    NSLog(@"1970: %f", [date timeIntervalSince1970]);
    NSLog(@"sDate: %@", [formatter stringFromDate:date]);
    [formatter release];
    

    Надеюсь, поможет.

  • 4

    369Z"; [df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss

    «Z» должны быть указаны:

    NSDateFormatter* df = [[NSDateFormatter alloc]init];
    NSString *dateString = @"2012-04-05T13:27:32..SSS'Z'"];
    NSDate* date = [df dateFromString:dateString];
    NSLog(@"1: %@",date);
    
    NSString *newDateString = [df stringFromDate:date];
    NSLog(@"2: %@",newDateString);
    

    Вывод NSLog:

    1: 2012-04-05 17:27:32 +0000
    2: 2012-04-05T13:27:32.369

    Имейте в виду, чтоNSLog используетNSDate форматтер по умолчанию с текущим часовым поясом.

    Увидеть:Date_Field_Symbol_Table

  • 1

    Так должно быть [df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];

    Так должно бытьyyyy годами

    [df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];