我正在开发一个应用程序,允许用户从UITableView中选择一个日期/时间(半小时增量)一切都很好,花花公子直到我得到我的最后时间。由于它是GMT,手机会自动将其转换为当地时间并抛出时间表。他们选择的时间需要转换为GMT +偏移量(因为用户选择当地时间而不是GMT),因此他们选择的时间是添加到日历中的时间。
NSDate* newDate = [[scheduled objectForKey:@"date"] dateByAddingTimeInterval:1800.0*indexPath.row];
[scheduled setObject:newDate forKey:@"date"];
正如你现在所看到的,我只是采用基础GMT并为每个indexPath添加1800s(30Min)。这可以在GMT中获得正确的时间,但实际上我需要做同样的但是从用户当前时区(我想将其转换为格林尼治标准时间,因为你应该在GMT中存储时间)
答案 0 :(得分:0)
NSTimeInterval timeZoneOff = [[NSTimeZone systemTimeZone] secondsFromGMTForDate:[scheduled objectForKey:@"date"]];
NSDate *gmtDate = [[scheduled objectForKey:@"date"] dateByAddingTimeInterval:-timeZoneOff];
像魅力一样工作。