У меня есть объект NSDate
, который я отправляю в API, который мы используем. Наше приложение используется по всему миру, так что API недостает даты, чтобы быть в UTC, например:Преобразование даты [NSDate] в локализованную строку даты UTC
"/Date(1481704200000)/"
Однако дата должна быть временная зона смещения приняты во внимание, поскольку API/сервер не делает это для нас. Если мы этого не сделаем, дата будет неверной, если мы просмотрим ее на сервере.
Я делаю следующее, что, кажется, производят неверную дату:
// Offset
float timezoneoffset = [[NSTimeZone localTimeZone] secondsFromGMT];
// Date
CFTimeInterval startDate = [[NSDate date] timeIntervalSince1970];
startDate = startDate - timezoneoffset;
NSString *dateStarted = [NSString stringWithFormat:@"/Date(%.0f000)/", startDate];
Как правильно взять местное время во внимание и создать правильно отформатированную строку даты UTC?
времяIntervalSince1970 рассчитывается на UTC. Так что вам не нужно конвертировать. https://developer.apple.com/reference/foundation/nsdate/1407504-timeintervalsince1970 – Satachito
Я думаю, что вы делаете ошибку во 2-й строке. Что вы получаете за NSLog с настройкой timezoneoffset? На самом деле, извините, моя ошибка ... –