Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка UnixToDateTime


wsv ©   (2007-07-27 10:53:00) 

Здравствуйте, все. Delphi, Мускул.

Получаю штамп в Unix - формате, например: 1184599590.
Перевожу:
showmessage(datetimetostr(unixtodatetime(1184599590)));
получаю ответ: 16.07.2007 15:26:30.

Казалось бы все нормально, но делаю запрос того же самого значения к Мускулу: Select from_unixtime(....) from ... и получаю ответ: 16.07.2007 21:26:30!!!
Разница в 5 часов. Гиде ошибка?


wsv   (2007-07-27 11:18:00) [1]

Написал так:

Function GetLocalTime(tm: tdatetime):tdatetime;
var a,b: TSystemTime;
begin
DateTimeToSystemTime(tm,a);
SystemTimeToTzSpecificLocalTime(nil,a,b);
GetLocalTime:=SystemTimeToDateTime(b)
end;

Думаю пойдет. (?)


sniknik   (2007-07-27 11:15:00) [2]

> Как заставить showmessage(datetimetostr(unixtodatetime(1184599590))) вывести гринвич?
GetTimeZoneInformation
предоставляет инфу по настройкам локального времени, прочитать и добавить...


sniknik   (2007-07-27 11:13:00) [3]

... ну это было только предположение.

> Куда смотреть?
наверное в хелп по мускульной from_unixtime, и дельфевой unixtodatetime, сравнить на предмет "а одинаково ли они работают".


wsv   (2007-07-27 11:12:00) [4]

Всем сорри.
В базу валятся значения по гринвичу. Разница местная - +5 к гринвичу.
Как заставить showmessage(datetimetostr(unixtodatetime(1184599590))) вывести гринвич?


wsv   (2007-07-27 11:04:00) [5]


> а разницу по гринвичу функция учитывает? в смысле она в
> локальное время преобразовывает? и где сервер MySql находится,
>  и где дельфи?
>


База Мускула локальна. На компе. Дельфи здесь же.
Куда смотреть?


sniknik   (2007-07-27 11:01:00) [6]

а разницу по гринвичу функция учитывает? в смысле она в локальное время преобразовывает? и где сервер MySql находится, и где дельфи?


wsv   (2007-07-27 10:59:00) [7]

Забыл отметить, что в SysUtils-е стоит
UnixDateDelta = 25569


Наверх

Титульная страница Поиск, карта сайта Написать письмо