...

Конвертация excel даты в TDate

Тема в разделе "Скрипты и разработка", создана пользователем bashorin, 18 июл 2023.

Метки:
  1. bashorin

    bashorin Участник

    В excel, как известно, свои типы данных. Например, дата в excel приходит в таком виде: 41275.5 (количество дней с 1900 по указанную дату в excel). При конвертации через некоторые библиотеки мы получаем дату именно в количестве дней.
    Конвертировать можно через Date.UTC:
    Код:
    
    const excelDate = "40822.291666666664"
    function convertExcelDate(d: any) {
      return new 
    Date(Date.UTC(0, 0, d - 1));
    }
    const 
    getD = convertExcelDate(excelDate)
    const 
    dateJson = getD.toJSON()  // "2011-10-06T00:00:00.000Z"
    const eDate = dateJson.split("T")[0]
    const 
    eDateParts = eDate.split("-")
    const 
    year = eDateParts[0]
    const 
    month = eDateParts[1] && eDateParts[1][0] == "0" ? eDateParts[1][1] : eDateParts[1]
    const 
    day = eDateParts[2] && eDateParts[2][0] == "0" ? eDateParts[2][1] : eDateParts[2]
    Context.data.MyDate = new TDate(Number(year), Number(month), Number(day))
    Последнее редактирование: 18 июл 2023