Ios tzID GMT-8有时区名称吗 我们的一个用户住在美国,他去了印度 他的设备时区设置为美国/洛杉矶
对于下面的代码,Ios tzID GMT-8有时区名称吗 我们的一个用户住在美国,他去了印度 他的设备时区设置为美国/洛杉矶,ios,Ios,对于下面的代码,self.tzID设置为PST NSTimeZone *timeZone = [NSTimeZone localTimeZone]; self.tzID = [timeZone abbreviation]; 然后,我可以正确地获得TZName作为America/Los_Angeles,代码为: NSDictionary *tzDict = [NSTimeZone abbreviationDictionary]; NSString *tzName = [tzDict objec
self.tzID
设置为PST
NSTimeZone *timeZone = [NSTimeZone localTimeZone];
self.tzID = [timeZone abbreviation];
America/Los_Angeles
,代码为:
NSDictionary *tzDict = [NSTimeZone abbreviationDictionary];
NSString *tzName = [tzDict objectForKey:self.tzID];
tzID
被设置为GMT-8,而tzDict
没有任何键GMT-8,这使得tzName
nil
- tzIDGMT-8是否有时区名称
- 如果是的话,我怎样才能得到它的名字
- 获取时区名称的方法是询问其本地化名称。例如:
NSString *name = [timeZone localizedName:NSTimeZoneNameStyleGeneric locale:nil];
这将返回时区的正确本地化名称。根据需要,您可以使用不同的样式,包括“标准”和“短标准”、“日光节约”等
如果您需要区分标准和DST,请使用IsDaylightSavingTimeOrDate:确定要使用哪一个。您应该小心使用缩写在字典中查找名称。问题是缩略语模棱两可(同一个缩略语在不同的地方有不同的含义)。更糟糕的是,你不能只查找什么是GMT-8,因为目前有七个,所以你无法知道用户想要哪个 所以,你真的不应该为了查找的目的而使用缩写。使用
timeZone.name
(或者在Swift 3中使用timeZone.identifier
)而不是缩写