我在时区上遇到了麻烦,
这就是问题所在:
我有个GMT的约会
2013年-10-1800:00 +0000
我把它转换成GMT-10
[formatter setDateFormat:@"dd/MM/yyyy hh:mm a"];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT-10"]];
NSString *minusTenGMT = [formatter stringFromDate:date];2013年10月17日02:00 PM
它给了我一个字符串: 17/10/2013 02:00 PM
因此,基本上,minusTenGMT是一个带有字符串日期的字符串
如果我想得到minusTenGMT的GMT值。我应该扭转这个过程
[formatter setDateFormat:@"dd/MM/yyyy hh:mm a"];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
NSDate *origDate = [formatter dateFromString:minusTenGMT];但问题是,结果是
2013-10-18 08:00 +0000与起源日期: 2013-10-18 00:00:00 +0000相比
,根据我搜索过的内容,这个字符串的时区将返回格林尼治时间吗?发生什么事了?
但如果我不使用格林尼治标准时间缩写,我使用我的本地时区
[formatter setDateFormat:@"dd/MM/yyyy hh:mm a"];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:[[NSTimeZone localTimeZone] abbreviation]]];
NSDate *origDate = [formatter dateFromString:minusTenGMT];结果是2013-10-18 00:00:00 +0000与原语完全相同。
我的本地人是GMT-10,我甚至尝试通过ios模拟器和系统改变我的位置.当使用本地时,它们都会返回到原来的位置(这是正确的)。但如果格林尼治时间,他们提供了不同的输出。
有人能告诉我发生了什么吗?我想知道,如果我使用自己的时区而不是日期的原始时区,它为什么会起作用?
预先感谢:D.
编辑:修正了错误。
困扰我的是,为什么在将GMT-10转换回GMT时,我应该使用GMT-10?
还是我太蠢了不明白?我用GMT-10格式来得到GMT-10。
所以要从GMT-10中获得GMT,我应该使用GMT格式,但它不起作用,我需要使用GMT-10格式才能得到GMT。
发布于 2013-10-17 05:45:59
我同意稻谷,请试着把这一行写在下面:--
formatter setDateFormat:@"dd/MM/yyyy hh:mm a"];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:[[NSTimeZone localTimeZone] abbreviation]]];
NSString *minusTenGMT = [formatter stringFromDate:date];// this line you need to include for converting
NSDate *origDate = [formatter dateFromString:minusTenGMT];https://stackoverflow.com/questions/19418643
复制相似问题