powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / UnixTime to DateTime, отстаёт на 3 часа
16 сообщений из 16, страница 1 из 1
UnixTime to DateTime, отстаёт на 3 часа
    #39715656
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
получаю циферки, unixtime, перевожу в datetime, но оказывается что время отстаёт от реального времени на 3 часа.
я полагаю связано с часовым поясом?

конвертирую с помощью двух:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var tm : int64;
{...}
 function UnixTimeToDateTime(AUnixTime: DWord; ABias: Integer): TDateTime;
begin
 Result := UnixDateDelta + (AUnixTime div SecPerDay) { Days }
 + ((AUnixTime mod SecPerDay) / SecPerDay) { Seconds }
 - ABias * MinDayFraction { Bias to UTC in minutes };
end;
 function UnixTimeToStr(AUnixTime: DWord; ABias: Integer): string;
begin
 Result := FormatDateTime('ddddd hh:nn:ss', UnixTimeToDateTime(AUnixTime, ABias));
end;

{Юзаю так} := DateTimeToStr(UnixToDateTime(tm)); 


Как можно получить правильное время из unixtime ?
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715658
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10.10.2018 16:44, Tech N9ne пишет:
> Как можно получить правильное время из unixtime ?

а где ты его берёшь?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715670
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, от часового пояса.
используй стандартную функцию UnixToDateTime(date, false);
второй параметр отвечает за пояс
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715672
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модуль DateUtils
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715677
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbда, от часового пояса.
используй стандартную функцию UnixToDateTime(date, false);
второй параметр отвечает за пояс
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715679
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий10.10.2018 16:44, Tech N9ne пишет:
> Как можно получить правильное время из unixtime ?

а где ты его берёшь?

vk api
cptngrbда, от часового пояса.
используй стандартную функцию UnixToDateTime(date, false);
второй параметр отвечает за пояс
спасибо)
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715681
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9nevk api

Вот у них и спрашивай в каком часовом поясе они возвращают время. Вероятнее всего это UTC,
но с тем же успехом они могут и московское время возвращать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715682
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbда, от часового пояса.
используй стандартную функцию UnixToDateTime(date, false);
второй параметр отвечает за пояс
Делаю так:
Код: pascal
1.
2.
3.
4.
var Data: TDateTime ;
begin
Data := UnixToDateTime(1539179389, false);
end;


не компилит, ошибка:
Too many actual parameters

если убрать запятую и false то всё работает, но отстаёт на 3 часа))
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715685
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovTech N9nevk api

Вот у них и спрашивай в каком часовом поясе они возвращают время. Вероятнее всего это UTC,
но с тем же успехом они могут и московское время возвращать.

Не может. Юникс тайм всегда в UTC. Если нет, то это уже криворукость разработчиков, кто такие испорченные данные передает.
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715687
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10.10.2018 17:25, Tech N9ne пишет:
> отстаёт на 3 часа

тебе же уже сказали, скорее всего это UTC
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715688
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10.10.2018 17:29, JaDi пишет:
> Не может. Юникс тайм всегда в UTC

не верь педовикии.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715690
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий10.10.2018 17:29, JaDi пишет:
> Не может. Юникс тайм всегда в UTC

не верь педовикии.

дык это понятно..
как мне получить правильное время из unixtime ?
Не менять же часовой пояс на пк.
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715693
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
TTimeZone.Local.ToUniversalTime(Now()); // из локального в UTC
TTimeZone.Local.ToLocalTime(Now()); // из UTC в локальное
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715694
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10.10.2018 17:35, Tech N9ne пишет:
> дык это понятно..
> как мне получить правильное время из unixtime ?

+ 3 * 60 * 60
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715696
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9necptngrbда, от часового пояса.
используй стандартную функцию UnixToDateTime(date, false);
второй параметр отвечает за пояс
Делаю так:
Код: pascal
1.
2.
3.
4.
var Data: TDateTime ;
begin
Data := UnixToDateTime(1539179389, false);
end;


не компилит, ошибка:
Too many actual parameters

если убрать запятую и false то всё работает, но отстаёт на 3 часа))
Потому что вы наверное переопределили функцию... надо через namespace указать
System.DateUtils.UnixToDateTime(1539179389, false)
...
Рейтинг: 0 / 0
UnixTime to DateTime, отстаёт на 3 часа
    #39715719
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neМимопроходящий10.10.2018 17:29, JaDi пишет:
> Не может. Юникс тайм всегда в UTC

не верь педовикии.

дык это понятно..
как мне получить правильное время из unixtime ?
Не менять же часовой пояс на пк.
Его надо не менять, а получить из текущих настроек.

гугли GetTimeZoneInformation
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / UnixTime to DateTime, отстаёт на 3 часа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]