【问题标题】:Parsing a 'llll' locale aware formatted data to Postgres default date format using MomentJS使用 MomentJS 将“llll”区域感知格式化数据解析为 Postgres 默认日期格式
【发布时间】:2020-07-29 02:47:46
【问题描述】:

我正在使用 Axios 成功获取一些数据,我需要将这些数据存储到我的 Postgres 数据库中。

提取数据中的一个字段是pubDate 字段,其格式完全如下:

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

通读Moment docs,这似乎是这种“locale aware 'llll'”格式。

所以,我需要解析这个 pubDate 并将其格式化为默认的 Postgres 日期格式。然后 pubDate 看起来像这样:

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

我一直在寻找这个过程很长一段时间,但找不到任何可行的方法。

我试过这个(没用),based on the String + Format from docs:

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

我是 NodeJS 的新手,如果我搞砸了,抱歉。提前谢谢!

【问题讨论】:

    标签: node.js postgresql date parsing momentjs


    【解决方案1】:

    看起来 MomentJS 没有这个的默认函数(我在任何地方都找不到),所以我创建了一个:

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      相关资源
      最近更新 更多