Вопрос

Я держу даты и время в своем магазине Coredata, и мне нужно точно представить пользователям время, как изначально введено. Проблема в том, что если они вошли в 4:00 на восточном побережье, то потом посмотрите на записанное время на Западном побережье, он появляется как 1:00, поскольку iPhone переводит универсальные времена в местные времена. Мне нужно показать 4:00 - вероятно, 4:00 (+3H00).

Прежде чем я уйду и реструктурирую свою основную модель данных, я хочу быть уверенным, что нет способа вывести NSTIMEZONE, который был активным во время создания из сохраненного объекта NSDATE. Здесь? Если нет, есть какие -либо рекомендации, как лучше всего запечатлеть Nstimezone во время создания? NSNumber, представляющая разницу во времени времени создания NSTIMEZONE от GMT?

Спасибо.

Это было полезно?

Решение

Как вы обнаружили, NSDATE представляет универсальный момент времени и не включает конкретную информацию о часовом поясе.

Я бы посоветовал вместо хранения смещения, хранить Nstimezone name имущество. Тогда вы можете использовать +[NSTimeZone timeZoneWithName:] Чтобы получить часовой пояс и оттуда конвертировать его в местное время. Это дает вам максимальную гибкость в том, как вы отображаете информацию пользователю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top