gpt4 book ai didi

ios - 从 NSDate 获取小时组件

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

我正在尝试从 NSDate 获取小时组件。这是我所做的:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[calendar setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+1"]];
NSDateComponents *startComponents = [calendar components:DATE_COMPONENTS fromDate:_start];
startComponents.timeZone = [NSTimeZone timeZoneWithName:@"GMT+1"];
int hours = [startComponents hour];

在昨天之前,小时值始终提前一小时。但从昨天开始,小时值提前了 2 小时。

我知道这与 NSTimezoneDST 有关。但我无法集中精力!

有人可以帮我吗?

最佳答案

"GMT+1" 不被识别为时区名称,因此

[NSTimeZone timeZoneWithName:@"GMT+1"]

nil 并且使用本地时区,这可能是您所在国家/地区上周末从冬令时 (GMT+01) 切换到夏令时 (GMT+02) .

"GMT+1" 替换为 "GMT+01":

[NSTimeZone timeZoneWithName:@"GMT+01"]
// or alternatively:
[NSTimeZone timeZoneForSecondsFromGMT:3600]

工作并给出预期的结果。

请注意,设置NSCalendar 的时区就足够了。设置时区NSDateComponents 在这种情况下无效。

关于ios - 从 NSDate 获取小时组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765042/

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