![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получиьт разницу времени локального и GMT [D7, WinXP]
Still Swamp © (2006-10-30 13:11:00)Как получиьт разницу времени локального и GMT? Вариант Now-NowGMT не предлагать.
@!!ex (2006-10-31 21:38:00) [21]1) UTC != TDataTime UTС - стандарт времени, TDataTime - способ хранения времени. Единственно просто доступный, кстати.
2) TDataTime=double большей точности нет.
Still Swamp (2006-10-31 21:14:00) [22]В споре истина рождается.
Ну грубо говоря у меня есть нечто (база) что мне отдает данные в GMT:TDateTime. Я естно все offline данные лежащие на клиенте складываю в том же формате не преобразуя. Это логично не так ли? Причина проста. Я не желаю преобразовывать принятые данные и записывать в иной формат так как в этом случае я ставлю своего клиента в зависимость от часов на машине которые могут козлить... а так что принял то и сохранил.
И так я на клиенте имею GMT, который клиенту выводить не халяльно. Я беру и преобразую его в локальное время. Все. Какое тут место для UTC? Зачем плодить лишние сущности?
При этом стоит учесть что UTC -> TDateTime = однозначная потеря точности менее милисеков.
Anatoly Podgoretsky (2006-10-31 20:35:00) [23]> Still Swamp (31.10.2006 20:32:11) [11]
Есть функции перевода из одного формат в другой, но я не о формате хранения,
я про время, никак не могу сообразить зачем нужен GMT, когда весь мир
работает по универсальному времени?
Still Swamp (2006-10-31 20:32:00) [24]Ну таки вот... по вышеперечисленным причинам это не подходит
Anatoly Podgoretsky (2006-10-31 20:07:00) [25]> Still Swamp (31.10.2006 19:14:09) [9]
Не ошибаешься, ну немного - это общая структура и для LocalTime, и для
SystemTime и для для любых других Time
Still Swamp (2006-10-31 19:14:00) [26]Э нет... секунду. Во первых.... Базой данных я не рулю, а там именно GMT записанное в аналог TDataTime.
Далее, если бы даже мне взбрело бы в голову переписывать базу на UT, то елси я не ошибаюся UT - это вот...
typedef struct _SYSTEMTIME { // st
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
Я тут не вижу времени точнее милисекунд. Вероятность появления записей с одним и тем же временем очень сильно велика. TDateTime таковой практически вообще не допускает.
Anatoly Podgoretsky (2006-10-31 19:06:00) [27]> Anatoly Podgoretsky (31.10.2006 18:24:07) [7]
И никаких разниц получать не надо!
Anatoly Podgoretsky (2006-10-31 18:24:00) [28]Это одно время называется UT, а не GMT
Still Swamp (2006-10-31 18:05:00) [29]У меня есть сервер, который проводит расчеты в GMT. Есть клиенты которые сидят в разных часовых поясах и у каждго свое время. Синхронизировать и хранить данные нужно их всех в одном времени, а вот показывать клиентам и принимать от них ввод необходимо в их локальном. Вот и все.
Anatoly Podgoretsky (2006-10-30 14:57:00) [30]Просто вместо GetLocalTime используй GetSystemTime
и вторую функцию ты нашел, с ее помощью и преобразуешь в специфическую зону..
Меня вообще то всегда удивляет любовь к GMT применения этому не вижу.
Still Swamp (2006-10-30 13:35:00) [31]Все нашел .... GetTimeZoneInformation. SystemTimeToTzSpecificLocalTime.
А про столб - позабавило.
Still Swamp (2006-10-30 13:23:00) [32]Ок. Про столб я помолчу...
Если можно, как местное преобразовать в UTC?
Anatoly Podgoretsky (2006-10-30 13:18:00) [33]Преобразовать местное в UTC, преобразовать GMT в UTC, затем операция вычитания.
Правильный Вася (2006-10-30 13:15:00) [34]очень напоминает анекдот про измерение высоты столба...
положить на землю нельзя, а то уже длина получается, а не высота