gpt4 book ai didi

iphone - iOS - 创建没有小时/分钟的 NSDate 并忽略夏令时类次

转载 作者:可可西里 更新时间:2023-11-01 05:30:59 24 4
gpt4 key购买 nike

我正在尝试从我的 NSDate 对象中删除小时和分钟

keyDate = [[array objectAtIndex:i] date];
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSCalendar* calendar = [NSCalendar currentCalendar];

NSDateComponents* components = [calendar components:flags fromDate:keyDate];
keyDate = [[calendar dateFromComponents:components] dateByAddingTimeInterval:[[NSTimeZone localTimeZone]secondsFromGMT]];

它在 2013 年 4 月之前都运行良好,之后我的 NSDate 对象以 -1 小时轮类创建。我很确定这是因为夏令时。

我怎样才能使我的 NSDate 对象在全年都为 00:00:00 +0000?

最佳答案

NSDate 对象本质上存储为 GMT 值。您在这里遇到的问题是您正在使用 currentCalendar(目前可能处于 DST)和 localTimeZone secondsFromGMT 进行计算,这取决于一年中的时间。

这里最好的解决方案是使用 GMT 的 NSCalendar 而不是基于变化的时区,如果(如您所指出的)您希望它们始终为 +0000。

或者,您可以更改为使用 NSTimeZonesecondsFromGMTForDate:,它会考虑相关日期/时间的 DST。

关于iphone - iOS - 创建没有小时/分钟的 NSDate 并忽略夏令时类次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155982/

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