![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка 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