试图使用日期格式从UTC转换为BST(英国夏令时)。但这在日期的结尾给了我“ Z”。它适用于从UTS到IST的对话。下面是我的代码。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale currentLocale]];
[dateFormatter setDateFormat:@"dd'-'MM'-'yyyy HH':'mm':'ss ZZZZZ"];
NSMutableString *dateString = [NSMutableString stringWithFormat:@"%@", [dateFormatter stringFromDate:[NSDate date]]];
NSLog(@"%@",dateString); // This prints 20-11-2019 12:49:02 Z
谁能知道为什么会这样。代码有问题还是需要更改?
答案 0 :(得分:1)
以日期格式ZZZZZ
替换为xxxxx
。除非用户处于GMT时区,否则使用ZZZZZ
会得到-99:99
,在这种情况下,用户只会给出Z
。无论用户的时区如何,xxxxx
都会给出-99:99
。
您可以在Unicode specification中查看特定的详细信息。
对于ZZZZZ
,它指出:
-08:00
-07:52:58
具有小时,分钟和可选秒字段的ISO8601扩展格式。当本地时间偏移为0时,将使用ISO8601 UTC指示器“ Z”。这等效于“ XXXXX”说明符。
对于XXXXX
,它指出:
-08:00
-07:52:58
Z
具有小时,分钟和可选秒字段的ISO8601扩展格式。当本地时间偏移为0时,将使用ISO8601 UTC指示器“ Z”。(与xxxxx相同,外加“ Z”。)
对于xxxxx
,它指出:
-08:00
-07:52:58
具有小时,分钟和可选秒字段的ISO8601扩展格式。 (与XXXXX相同,减去“ Z”。)