NSDate для формата GMTDate для JSON

Я хочу конвертировать мою локальную дату ([NSDate date]) в GMT для создания строки JSON (/ Date (1324435876019-0000) /).

Мой код отлично работает, когда я устанавливаю часы в часовой пояс EST, когда меняю свой часовой пояс на PST, мой код по-прежнему действует как EST. Не могли бы вы рассказать мне, в чем проблема, следующий код?

NSDate *localDate = [NSDate date]; NSTimeInterval timeZoneOffset = [[NSTimeZone systemTimeZone] secondsFromGMT]; // You could also use the systemTimeZone method NSTimeInterval gmtTimeInterval = [localDate timeIntervalSinceReferenceDate] - timeZoneOffset; NSDate *gmtDate = [NSDate dateWithTimeIntervalSinceReferenceDate:gmtTimeInterval]; NSString *time = [NSString stringWithFormat:@"/Date(%@-0000)/", [NSNumber numberWithLongLong:[gmtDate timeIntervalSince1970] * 1000]]; 

Вы можете получить время по GMT эпохи, просто называя timeIntervalSince1970 .

 NSString *time = [NSString stringWithFormat:@"/Date(%lld-0000)/", (long long)([[NSDate date] timeIntervalSince1970] * 1000)]; 

@joe и @tommy, вы правы. Даже я реализовал то же самое, что и вы упомянули. Проблема была в базе данных сервера. Я нашел хак. Мне просто нужно добавить 18000 (5 часов) секунд к текущей местной дате, и я хорош. Таким образом, код

  NSDate *localDate = [NSDate date]; NSTimeInterval gmtTimeInterval = [localDate timeIntervalSinceReferenceDate] + 18000; NSDate *gmtDate = [NSDate dateWithTimeIntervalSinceReferenceDate:gmtTimeInterval]; NSString *time = [NSString stringWithFormat:@"/Date(%@-0000)/", [NSNumber numberWithLongLong:[gmtDate timeIntervalSince1970] * 1000]]; 
  • Перевести имена временной зоны на идентификатор времени: s в Xcode
  • Сравнение даты или часовой пояс не установлено должным образом
  • Обнаруживать, если формат времени находится в 12-часовом или 24-часовом формате
  • Как изменить строку на сегодняшний день без преобразования в любой часовой пояс в Swift
  • Я получаю неправильное время уведомления в iOS?
  • Преобразование времени GMT в местное время
  • Дата, выбранная из UIDatePicker, отличается от даты сохранения
  • Как преобразовать дату ответа сервера в локальный часовой пояс?
  • Как управлять NSDate для разных часовых поясов
  • NSTimeZone: Любая разница между «UTC» и «GMT»?
  • В iOS сокращен переход на летнее время в NSTimeZone?
  • Interesting Posts

    iPhone. Почему статический анализатор не понял это?

    Добавление стрелки направления в текущее местоположение на Mapbox (iOS)

    Получить время с удаленного сервера для приложения ios

    почему GCDAsyncUdpSocket не может отправлять / получать пакеты через некоторое время в режиме широковещания?

    Ошибка в методе рисования строки UIKit?

    Пользовательский вызывной пузырь MKAnnation с кнопкой

    Программно нажмите на HTML href, чтобы обновить приложение.

    Что использовать в качестве ключевого пути в KVO?

    Как конвертировать CGFontRef в UIFont?

    OpenGL ES 2.0 / MonoTouch: текстура окрашена в красный цвет

    Ошибка приложения с сообщением «Не удалось восстановить ранее выбранный фрейм»

    Вставьте одну ячейку в горизонтальном UICollectionView вправо

    Как обновить представление после ввода applicationWillEnterForeground?

    UIPageViewController – страница с изменением страницы программно не работает на iPhone 4s / 5 / 5s

    Первый метод после касания ячейки представления таблицы didSelectRowAtIndexPath или prepareforSegue?

    Давайте будем гением компьютера.