使 NSDateFormatter 发出字符串 "UTC" 而不是字符串 "GMT"?
Make NSDateFormatter emit the string "UTC" instead of the string "GMT"?
我有以下 Objective-C 代码,它试图用当前的 date/time 在 UTC 中生成一个字符串:
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
部分发出字符串 "UTC"?我宁愿不必求助于将 "zzz" 从我的日期格式字符串中删除,然后手动将 "UTC" 附加到生成的日期字符串上。
没有 returns UTC
的日期格式说明符。
由于您正在为格式化程序硬编码 UTC 时区,因此只需将字符串 UTC
硬编码为日期格式即可。
另请注意,您想要的年份是 yyyy
,而不是 YYYY
。
[dateFormatter setDateFormat:@"yyyy-MM-dd--HH-mm-ss 'UTC'"];
如果您需要处理其他时区并希望 GMT
显示为 UTC
,则使用 zzz
(正如您已经使用的那样)并对结果使用字符串替换以进行转换GMT
到 UTC
.
要考虑的另一个可能的想法是使用一些 X
作为时区说明符。这会将时区偏移量作为数字给出,但如果时区偏移量为 0,则结果为 Z
(对于祖鲁语)。
我有以下 Objective-C 代码,它试图用当前的 date/time 在 UTC 中生成一个字符串:
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
部分发出字符串 "UTC"?我宁愿不必求助于将 "zzz" 从我的日期格式字符串中删除,然后手动将 "UTC" 附加到生成的日期字符串上。
没有 returns UTC
的日期格式说明符。
由于您正在为格式化程序硬编码 UTC 时区,因此只需将字符串 UTC
硬编码为日期格式即可。
另请注意,您想要的年份是 yyyy
,而不是 YYYY
。
[dateFormatter setDateFormat:@"yyyy-MM-dd--HH-mm-ss 'UTC'"];
如果您需要处理其他时区并希望 GMT
显示为 UTC
,则使用 zzz
(正如您已经使用的那样)并对结果使用字符串替换以进行转换GMT
到 UTC
.
要考虑的另一个可能的想法是使用一些 X
作为时区说明符。这会将时区偏移量作为数字给出,但如果时区偏移量为 0,则结果为 Z
(对于祖鲁语)。