首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有日期字符串的NSString的时区是什么?

带有日期字符串的NSString的时区是什么?
EN

Stack Overflow用户
提问于 2013-10-17 05:01:31
回答 1查看 694关注 0票数 0

我在时区上遇到了麻烦,

这就是问题所在:

我有个GMT的约会

2013年-10-1800:00 +0000

我把它转换成GMT-10

代码语言:javascript
复制
[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值。我应该扭转这个过程

代码语言:javascript
复制
[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相比

,根据我搜索过的内容,这个字符串的时区将返回格林尼治时间吗?发生什么事了?

但如果我不使用格林尼治标准时间缩写,我使用我的本地时区

代码语言:javascript
复制
[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。

EN

回答 1

Stack Overflow用户

发布于 2013-10-17 05:45:59

我同意稻谷,请试着把这一行写在下面:--

代码语言:javascript
复制
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];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19418643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档