NSDate将来用户当前时区/区域

时间:2012-10-03 00:20:42

标签: uitableview nsdate

我正在开发一个应用程序,允许用户从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中存储时间)

1 个答案:

答案 0 :(得分:0)

NSTimeInterval timeZoneOff = [[NSTimeZone systemTimeZone] secondsFromGMTForDate:[scheduled objectForKey:@"date"]];

NSDate *gmtDate = [[scheduled objectForKey:@"date"] dateByAddingTimeInterval:-timeZoneOff];

像魅力一样工作。