Uitableview NSDate输入用户当前时区/区域,用于将来的时间

Uitableview NSDate输入用户当前时区/区域,用于将来的时间,uitableview,nsdate,Uitableview,Nsdate,我正在开发一个应用程序,它允许用户从一个可用的时间视图(以半小时为增量)中选择一个日期/时间。在我得到最后的时间之前,一切都很顺利。由于是格林尼治标准时间,手机会自动将其转换为当地时间,并取消日程安排。他们选择的时间需要转换为GMT+偏移量(因为用户选择的是本地时间而不是GMT),这样他们选择的时间就是添加到日历中的时间 NSDate* newDate = [[scheduled objectForKey:@"date"] dateByAddingTimeInterval:1800.0*inde

我正在开发一个应用程序,它允许用户从一个可用的时间视图(以半小时为增量)中选择一个日期/时间。在我得到最后的时间之前,一切都很顺利。由于是格林尼治标准时间,手机会自动将其转换为当地时间,并取消日程安排。他们选择的时间需要转换为GMT+偏移量(因为用户选择的是本地时间而不是GMT),这样他们选择的时间就是添加到日历中的时间

NSDate* newDate = [[scheduled objectForKey:@"date"] dateByAddingTimeInterval:1800.0*indexPath.row];
    [scheduled setObject:newDate forKey:@"date"];
正如您现在所看到的,我只是以基本GMT为基础,并为每个indexath.row添加1800s(30Min)。这可以获得正确的GMT时间,但实际上,我需要从用户当前时区执行相同的操作(我猜将其转换为GMT,因为您应该以GMT存储时间)

工作起来很有魅力

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

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