代码之家  ›  专栏  ›  技术社区  ›  Duny

ObjC日期始终返回2017年12月25日

  •  0
  • Duny  · 技术社区  · 6 年前

    需要以下代码的帮助:

    self.dateTimestamp = userInfo[@"timestamp"];<- Returns UTC Time April 09 2018 11:09
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"MMMM dd YYYY HH:mm"];
    [dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
    [dateFormat setCalendar:[NSCalendar currentCalendar]];
    NSDate *dte = [dateFormat dateFromString:self.dateTimestamp];
    NSLog(@"Date: %@", dte); <-Date: Sun Dec 24 11:09:00 2017
    

    为什么我会有日期差异。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Sulthan    6 年前

    只需更换 YYYY 通过 yyyy :

    NSString *dateTimestamp = @"April 09 2018 13:07";
    
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"MMMM dd yyyy HH:mm"];
    [dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
    [dateFormat setCalendar:[NSCalendar currentCalendar]];
    
    NSDate *dte = [dateFormat dateFromString:dateTimestamp];
    
    NSLog(@"Date: %@", dte);
    

    结果: Mon Apr 9 13:07:00 2018

    但使用时

    [dateFormat setDateFormat:@"MMMM dd YYYY HH:mm"];
    

    正在记录: Sun Dec 24 13:07:00 2017