繁体   English   中英

使用时区和星期几名称字符串格式化完整日期

[英]format a full date with timezone and day of the week name string

我正在尝试在 NodeJS javascript 中使用date-fns v2.21.3 v2.21.3 代替字符串01:03:55.065 GMT Tue Mar 16 2021的字符串 01:03:55.065 创建日期 object 但我不介意使用常规的 ZDE9B8EZE2.

这是我的代码:

const df = require('date-fns');

const setupTime = '01:03:55.065 GMT Tue Mar 16 2021';
const ret = df.parse(setupTime,'HH:mm:ss.SSS zzz EEE dd yyyy',Date.now());
console.info(ret);

看起来可能format()parse()没有相同的格式字符串?

当我尝试执行此代码时,我得到:

RangeError: Format string contains an unescaped latin alphabet character `z`
    at Object.parse (/Volumes/osx-storage/projects/vocalix/parse-date-fns/node_modules/date-fns/parse/index.js:486:15)
    at Object.<anonymous> (/Volumes/osx-storage/projects/vocalix/parse-date-fns/index.js:4:16)
    at Module._compile (node:internal/modules/cjs/loader:1108:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1137:10)
    at Module.load (node:internal/modules/cjs/loader:988:32)
    at Function.Module._load (node:internal/modules/cjs/loader:828:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47

现在.. 由于我收到的数据中始终包含GMT ,因此我尝试忽略时区并执行以下操作:

const ret = df.parse(setupTime,"HH:mm:ss.SSS 'GMT' EEE dd yyyy",Date.now());

但这会产生 output Invalid Date

有 package date-fns-tz但它不包括它自己的格式 function 所以这里不相关。

任何想法如何解决这个问题?

谢谢

也许这个简单的 JavaScript 解决方案会对您有所帮助?

 const d = "01:03:55.065 GMT Tue Mar 16 2021"; function parseDate(s){ const a = s.split(" "); return new Date([a[4],a[3],a[5],a[0]+"Z"].join(" ")) } console.log(parseDate(d));

它与标准日期构造函数一起使用,接受字符串作为输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM