Форум программистов, компьютерный форум CyberForum.ru

Часовой формат и время по гринвичу - Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
albert102
 Аватар для albert102
-21 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 53
29.11.2013, 10:16     Часовой формат и время по гринвичу #1
Доброе утро!

В моем приложении люди могут отправлять друг другу сообщения.
Нужно чтобы когда австралиец пишет американцу, у австралийца в итоге отображалось свое время, у американца свое.

Как я собираюсь это сделать:

1. На сервере у меня стоит GMT = 0 по умолчанию.
2. Все сообщения сохраняются в UNIX формате согласно GMT = 0.
3. Когда один из пользователей post методом запрашивает с сервера сообщения, к UNIX времени прибавляется или отнимается количество часов исходя из GMT пользователя
4. Готовое UNIX время форматируется в человеческий вид исходя из часового формата пользователя (12\24)

Чтобы такая схема работала, нужно в php скрипт с айфона передать 2 параметра: какой формат времени у пользователя, и у какой у него часовой пояс.

Есть ли еще какие-нибудь решения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 10:16     Часовой формат и время по гринвичу
Посмотрите здесь:

C++ Builder 12-часовой формат времени
Узнать точное время в милисекундах по Гринвичу JavaScript
C# 24-часовой формат DateTime.Now
Delphi Как получать время по Гринвичу GMT?
C# Сравнить пути кончиков часовой и минутной стрелок за время t минут
C# Как форматировать время в 12-ти часовой формат вида: 12:00 PM
C++ Builder Заливка круга цветом за определенное время по часовой стрелке
Определить время по углу наклона часовой стрелки (Си) C (СИ)
Перевод DateTime в 24 часовой формат C#
JavaScript Как получить время, зная часовой пояс?
C++ Как получить время по Гринвичу, а не своего часового пояса?
Как повернуть фигуру против часовой стрелки во время движения C#

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dan_banan_
10 / 10 / 1
Регистрация: 03.03.2013
Сообщений: 87
Записей в блоге: 1
29.01.2014, 22:21     Часовой формат и время по гринвичу #2
я не понимаю правда зачем еще какие то решения)) но как вариант можно не передавать ничего) просто когда сообщение приходит на клиент в самом клиенте ставить ему текущее время свое )
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
30.01.2014, 11:06     Часовой формат и время по гринвичу #3
Какой смысл форматировать время на сервере? Отдавайте клиенту время как есть, он сам отформатирует по своей локали и поясу (NSDateFormatter).
divader
 Аватар для divader
13 / 13 / 3
Регистрация: 28.01.2014
Сообщений: 55
30.01.2014, 14:24     Часовой формат и время по гринвичу #4
Определить часовой пояс:
Objective-C
1
2
3
NSTimeZone *timeZone = [NSTimeZone localTimeZone]; //определяем...
NSString *tzName = [timeZone name]; // присваиваем строке
//теперь можно передавать на сервер
Получится типа этого: Australia/Sydney или Europe/Zurich или America/Denver
Формат времени:
Тут дело в том, что этот формат можно сразу переделать под удобный для вашего сервера и передать на него (на сервер). Делается это так:
Objective-C
1
2
3
4
5
NSDate* now = [NSDate date];
NSDateFormatter* df = [[NSDateFormatter alloc] init]; 
[df setTimeStyle:NSDateFormatterShortStyle];  //можно поставить NSDateFormatterShortStyle - эксперементируйте
NSString* myString = [df stringFromDate:now];   //определяем формат даты этого момента времени (сейчас)
//теперь можно передавать на сервер
Если же вам нужен какой-то специфичный формат даты, то это можно провернуть так:
Objective-C
1
2
3
4
5
NSDate* now = [NSDate date];
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"dd/mm/yyyy hh:ss"];//здесь устанавливаете ваш формат
NSString *formatterDate = [inputFormatter stringFromDate:now];//передаем дату форматтеру (можно любую дату)
//теперь можно передавать на сервер
Yandex
Объявления
30.01.2014, 14:24     Часовой формат и время по гринвичу
Ответ Создать тему
Опции темы

Текущее время: 06:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru