代码之家  ›  专栏  ›  技术社区  ›  Jon Schneider Stefan

使NSDateFormatter发出字符串“UTC”而不是字符串“GMT”?

  •  0
  • Jon Schneider Stefan  · 技术社区  · 6 年前

    NSDate *currentDate = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSTimeZone *utc = [NSTimeZone timeZoneWithName:@"UTC"];
    [dateFormatter setTimeZone:utc];
    [dateFormatter setDateFormat:@"YYYY-MM-dd--HH-mm-ss zzz"];
    NSString *utcDateString = [dateFormatter stringFromDate:currentDate];
    

    此代码 几乎 产生我想要的东西。产生的价值 utcDateString

    2019-06-17--22-28-13 GMT

    但是,我想要的输出包含字符串“UTC”, “GMT”,如:

    2019-06-17--22-28-13 UTC

    有办法弄到 NSDateFormatter 发出 zzz 日期格式的一部分?我不想让“zzz”离开日期格式字符串,然后手动将“UTC”附加到结果日期字符串中。

    0 回复  |  直到 6 年前
        1
  •  1
  •   rmaddy    6 年前

    没有返回日期格式说明符 UTC .

    因为您正在硬编码格式化程序的UTC时区,所以只需硬编码字符串 协调世界时

    还要注意你想要 yyyy ,不是 YYYY 今年。

    [dateFormatter setDateFormat:@"yyyy-MM-dd--HH-mm-ss 'UTC'"];
    

    如果你需要处理其他时区 GMT 显示为 协调世界时 ,然后使用 zzz (您已经是)并对结果使用字符串替换来转换 格林尼治时间 .

    X 对于时区说明符。这会将时区偏移量作为数字给出,但如果时区偏移量为0,则会导致 Z (代表祖鲁)。

    推荐文章