假设我有一个时间点,由
表示NSDate* now = [NSDate date];
例如: 2012-11-07 13:44:55 +0000 (设备的当地时间)
我也有一系列国家 每个国家/地区都有一个名称和地理坐标(log,lat)
例如:英格兰,51.5,-0.116667
问: 如何计算并将上述日期时间转换为特定国家/地区的当前等效时间?
(作为旁注,我更喜欢本地的东西,而不是调用外部API)
答案 0 :(得分:3)
获取可用的时区列表,
[NSTimeZone abbreviationDictionary]
这将返回此类内容,
EST = "America/New_York";
GMT = GMT;
GST = "Asia/Dubai";
HKT = "Asia/Hong_Kong";
HST = "Pacific/Honolulu";
ICT = "Asia/Bangkok";
IRST = "Asia/Tehran";
IST = "Asia/Calcutta";
JST = "Asia/Tokyo";
KST = "Asia/Seoul";
MDT = "America/Denver";
MSD = "Europe/Moscow";
MSK = "Europe/Moscow";
现在使用这个时区缩写键,比如莫斯科的MSD,来获取莫斯科时区偏离GMT的秒数。
NSInteger no_of_seconds = [[NSTimeZone timeZoneWithAbbreviation:@"MSD"] secondsFromGMT];
现在可以将'no_of_seconds'添加到当前日期以获取所需位置的日期,在本例中为莫斯科,
[NSDate dateWithTimeIntervalSinceNow:no_of_seconds]