Разбор форматированных данных с поддержкой 'llll' в формат даты Postgres по умолчанию с использованием MomentJS - PullRequest
0 голосов
/ 16 апреля 2020

Я успешно извлекаю некоторые данные, используя Ax ios, и мне нужно сохранить эти данные в моей базе данных Postgres.

Одним из полей извлеченных данных является поле pubDate, который отформатирован в точности так:

"Tue, 15 Apr 2020 20:01:30 +0000"

Считывание Моментальные документы , похоже, это формат "locale aware 'llll'".

Итак, мне нужно разобрать эту pubDate и отформатировать ее как Postgres формат даты по умолчанию. Тогда pubDate будет выглядеть примерно так:

"2020-04-14T20:01:30"

Я уже довольно долго искал этот процесс и просто не смог найти ничего, что могло бы работать.

I Я пробовал это (не работает), на основе формата String + из документов :

let date = moment(pubDate, 'llll').format();

Я новичок в NodeJS, извините, если я что-то испортил. Заранее спасибо!

1 Ответ

0 голосов
/ 16 апреля 2020

Похоже, момент JS не имеет функции по умолчанию для этого (я нигде не могу найти), поэтому я создал одну:

function parseDate (date) {
// date format: "Thu, 16 Apr 2020 18:29:49 +0000"
   date = String(date);

// date format (after , split): ["", "Day", "Abbreviated Month", "Year", "hour:minute:seconds", "+0000"]. I.E.: ["", "16", "Apr", "2020", "18:29:49", "+0000"]
   let dateInfo = String(date).split(",")[1].split(" ").slice(1, -1);

// ["Day", "Abbreviated Month", "Year", "hour:minute:seconds"]
   let dateString = dateInfo[2] + '-' + moment().month(dateInfo[1]).format("M") + '-' + dateInfo[0] + ' ' + dateInfo[3];

   const parsedDate = moment(dateString, 'YYYY-MM-DD hh:mm:ss');

   return parsedDate;
}
...