gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:34:00 27 4
gpt4 key购买 nike

我遇到时区问题,

所以问题是这样的:

我的日期是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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com