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

标签 ios objective-c nsstring nsdate nsdateformatter

我遇到时区问题,

所以问题是这样的:

我的日期是GMT

2013-10-18 00:00: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下午

它给了我一个字符串: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:00 +0000 与原始日期比较:2013-10-18 00:00:00 +0000

,根据我搜索到的内容,该字符串的时区将返回到 GMT?怎么了?。

但是如果我不使用 GMT 缩写并且使用本地时区

[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模拟器和系统更改我的位置。当使用本地时它们都会回到原来的状态(这是正确的)。但如果 GMT,它们会给出不同的输出。

谁能告诉我发生了什么事吗?我想知道为什么如果我使用自己的时区而不是日期的原始时区,它会起作用。

提前致谢:D。

编辑:修正了拼写错误。

困扰我的是为什么我在将其转换回 GMT 时要使用 GMT-10?

还是我太笨了,听不懂? 我使用 GMT-10 格式来获取 GMT-10。

所以要从 GMT-10 获取 GMT,我应该使用 GMT 格式,但它不起作用,我需要使用 GMT-10 格式来获取 GMT。

最佳答案

我同意 rmaddy 请尝试在下面包含这一行:--

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];

关于ios - 带有日期字符串的 NSString 的时区是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19418643/

相关文章:

objective-c - 如何在 NSTextView 中设置字体?

ios - 用 isEqual 比较字符串没有运行完整的功能 iOS

iphone - 将 NSString 中的 ""字符替换为 "\"(以创建 Unix 路径)

ios - quickblox中在线离线用户状态

ios - 用 Swift 模糊 CameraView 中的特定区域?

ios - AVPlayer seekToTime 永远不会完成

ios - NSXMLParser 编码数据为字符串

iphone - 从提要中填充 UIPickerView

ios - 使用委托(delegate)方法引用文本字段属性

objective-c - Cocoa 中*您的*常量/静态变量是否有任何有用的命名约定?