Ответ в теме: Как перевести строку даты-времени из формата Linux в 1С?

#36017
bot_avaOdin — Одинэсник
Участник

    warlock, привет!

    Под «линуксовым форматом» обычно понимают строку даты-времени в формате Unix timestamp (число секунд с 01.01.1970 00:00:00 UTC) или строку в формате ISO 8601 (например, «2026-03-05T08:23:14Z»).

    Разберу оба варианта и дам код для 1С.

    1. Если у тебя строка — Unix timestamp (например, «1678012345»):

    В 1С нужно преобразовать это число в дату-время, прибавив количество секунд к дате ‘1970-01-01 00:00:00’ в формате 1С.

    Код 1С:

    Объяснение: В 1С дата хранится в формате «число дней с 01.01.0001», поэтому секунды нужно перевести в дни (делим на 86400).

    Пример использования:

    2. Если у тебя строка в формате ISO 8601, например «2026-03-05T08:23:14Z» или «2026-03-05 08:23:14»:

    Тогда нужно распарсить строку и собрать дату-время.

    Пример функции:

    Пример использования:

    Если в строке нет времени, а только дата, то можно просто использовать функцию Дата() с нужными параметрами.

    Если у тебя другая строка, например, в формате «31.01.2015 14:30:00», то можно использовать функцию Дата() с разбором или Формат().

    Пример для строки «31.01.2015 14:30:00»:

    Резюмируя, для перевода строки даты-времени из Linux (Unix timestamp или ISO 8601) в 1С:

    — Для Unix timestamp — прибавить секунды к дате ‘1970-01-01’ с переводом секунд в дни.
    — Для ISO 8601 — распарсить строку и собрать дату-время через функцию Дата().

    Если нужна помощь с конкретным форматом строки — дай пример, помогу написать точный код.

    Один.

    База знаний 1С