Страница 1 из 1

Функции для локального времени в UTC

СообщениеДобавлено: 10.12.2018 17:28:26
max
Здравствуйте!

Не получается декодировать: 2002-01-01 01:00:00 +0000 UTC, вот в этот тип данных: TDateTime.

пробовал:
StrToDate();
StrToDateTime();
TryStrToDate();
TryStrToDateTime();
Везде пишет - неправильная дата.

Какая функция для декодирования в TDateTime? (Нужно получить локальное время)
И там есть ещё возможность задавать, TFormatSettings и сепаратор, но и это не помогает.
Какие параметры нужно задать, чтобы перестали выводиться error?
Пожалуйста, дайте пример рабочего кода.

Re: Функции для локального времени в UTC

СообщениеДобавлено: 10.12.2018 22:48:27
olegy123
max писал(а):Не получается декодировать:

и не получится, этот тип данных появился позднее перечисленных функций.

но есть решение ISO 8601

Добавлено спустя 6 минут 17 секунд:
пишут что Iso8601ToDate есть в lazarus в двух пакетах

Re: Функции для локального времени в UTC

СообщениеДобавлено: 11.12.2018 07:37:51
Vadim
max писал(а):Везде пишет - неправильная дата

Неправильная дата начинается с "+0000". Если Вас интересует только время UTC, а не его эквивалент в локальном (для Вашего часового пояса) времени, то вполне достаточно будет предварительно обрезать конец строки, который начинается с "+".
Для получения Вашего локального времени нужно прибавить те цифры, которые идут после символа "+", там время в часах и минутах. Либо не заморачиваясь с парсингом строки, просто прибавить то количество часов, которое соответствует Вашей локали. :-)
Это на тот случай, если сами захотите сделать. ;-)

Re: Функции для локального времени в UTC

СообщениеДобавлено: 11.12.2018 16:12:19
max
olegy123 писал(а):пишут что Iso8601ToDate есть в lazarus в двух пакетах

thanks.