gpt4 book ai didi

iphone - 根据特定时区计算日期

转载 作者:行者123 更新时间:2023-12-03 20:22:27 25 4
gpt4 key购买 nike

使用 NSDate 对我来说很棘手。我知道它代表一个特定的时间点,与特定的时区或地区无关。我还阅读了大量有关 NSDateFormatter、NSCalendar、NSDateComponents、NSlocale 和 NSTimeZone 的文档。

我正在尝试根据两个特定的太平洋时区进行计算。例如,我希望能够计算从日期 A 到日期 B 的天数。我不想通过解析字符串来“破解”它,因为我还希望计算 DST 等内容。

谁能推荐一种方法来做到这一点?

编辑:找到解决方案:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"PST"];
[calendar setTimeZone:zone];
NSDateComponents *comp = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];
date = [calendar dateFromComponents:comp];
[calendar release];

这会产生本地化为太平洋时间的日期。我知道这会导致不同区域设置出现问题,但我的应用程序是独一无二的,这是合理的。

然后我可以按照发布的内容除以 86400 来比较日期。

虽然,这似乎有点矫枉过正 - 很多额外的工作 - 也许有一种更短的方法来获取特定时区的日期?

最佳答案

您还可以将两个 NSDate 对象转换为 GMT。像这样:

NSDate *date;
NSTimeZone *timeZone;
NSDate *gmtDate = [date dateByAddingTimeInterval:-[timeZone secondsFromGMTForDate:date]];

然后将 NSCalendar 的时区设置为 GMT。像这样:

NSCalendar *calendar;
[calendar setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0];

然后,您可以使用日历和 GMT 日期来计算您需要了解的任何信息。

关于iphone - 根据特定时区计算日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4178522/

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