Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / UnixTime to DateTime, отстаёт на 3 часа / 16 сообщений из 16, страница 1 из 1
10.10.2018, 16:44
    #39715656
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UnixTime to DateTime, отстаёт на 3 часа
Здравствуйте.
получаю циферки, 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
10.10.2018, 16:46
    #39715658
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UnixTime to DateTime, отстаёт на 3 часа
10.10.2018 16:44, Tech N9ne пишет:
> Как можно получить правильное время из unixtime ?

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

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

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

Вот у них и спрашивай в каком часовом поясе они возвращают время. Вероятнее всего это UTC,
но с тем же успехом они могут и московское время возвращать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.10.2018, 17:25
    #39715682
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UnixTime to DateTime, отстаёт на 3 часа
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
10.10.2018, 17:29
    #39715685
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UnixTime to DateTime, отстаёт на 3 часа
Dimitry SibiryakovTech N9nevk api

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

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

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

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

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

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

+ 3 * 60 * 60
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.10.2018, 17:41
    #39715696
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UnixTime to DateTime, отстаёт на 3 часа
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
10.10.2018, 18:32
    #39715719
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UnixTime to DateTime, отстаёт на 3 часа
Tech N9neМимопроходящий10.10.2018 17:29, JaDi пишет:
> Не может. Юникс тайм всегда в UTC

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

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

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


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