【发布时间】:2021-01-30 14:33:08
【问题描述】:
我有一些格式化的日期时间字符串,例如 Fri Sep 18th 2020 05:52:20。
当我使用 momentJS 将主题转换为 datetime => 失败时。因为那是无效的日期时间格式。
那么,如何将它们转换为带有时区的日期时间(即:'Euro/Paris')。
【问题讨论】:
标签: javascript datetime format timezone momentjs
我有一些格式化的日期时间字符串,例如 Fri Sep 18th 2020 05:52:20。
当我使用 momentJS 将主题转换为 datetime => 失败时。因为那是无效的日期时间格式。
那么,如何将它们转换为带有时区的日期时间(即:'Euro/Paris')。
【问题讨论】:
标签: javascript datetime format timezone momentjs
如果您的日期格式不是标准格式,您可以为其指定格式字符串作为第二个参数
(https://momentjs.com/docs/#/parsing/string-format/)
格式字符串:3 个字母的星期几、3 个字母的月份、序数日、4 位数的年份、24 小时时间格式,前导 0 为:
ddd MMM Do YYYY HH:mm:ss
您可以使用moment().tz 指定时区
moment.tz(
moment(
"Fri Sep 18th 2020 05:52:20",
"ddd MMM Do YYYY HH:mm:ss"
), "Europe/Paris")
.format("YYYY-MM-DD HH:mm:ss z"); // "2020-09-18 12:52:20 CEST"
另外请记住 RobG 对时区的评论
字符串被解析为本地,它是被转移到指定时区的输出。因此生成的时间戳值取决于主机系统时区设置
【讨论】:
moment(dateString).format('ddd MMM Do YYYY HH:mm:ss') 而不是moment(dateString, 'ddd MMM Do YYYY HH:mm:ss')。那是因为我的结果是错误的。非常感谢,你拯救了我的早晨。
moment 函数。换句话说,moment.tz(input, format, timezone).