javascript - 使用 JavaScript 格式化 UTC 日期在 Safari 中不起作用
问题描述
我目前正在尝试将 DB UTC 时间戳格式化为本地时区。为此,我正在尝试:
new Date( "2020-03-13 18:40:45 UTC".replace( /\s/, 'T' ) )
首先我有这个:
new Date( "2020-03-13 18:40:45 UTC" )
它适用于 Chrome 和 Firefox,但不适用于 Safari。所以我做了一些研究并想出了替换。由于我的替换,我现在Invalid Date
在每个浏览器中都得到了。我现在知道为什么......我能做些什么来解决这个问题?
解决方案
确保您的字符串采用官方支持的格式,因为其他任何内容都回退到“......任何特定于实现的启发式或特定于实现的日期格式”。
空格必须是T
,并且前面UTC
必须没有空格。Z
(这里不需要正则表达式。)
new Date("2020-03-13 18:40:45 UTC".replace(" ", "T").replace(" UTC", "Z"))
现场示例:
const dt = new Date("2020-03-13 18:40:45 UTC".replace(" ", "T").replace(" UTC", "Z"));
console.log(dt.toISOString());
似乎 Chrome 和 Firefox 具有特定于实现的启发式/格式,这将使他们接受空格和 UTC,但不接受 T 和 UTC。:-)
推荐阅读
- docker - 如何将 NGINX 代理网络设置为 wikijs 正确?
- java - JPA多对多级联问题
- keycloak - Keycloak未获得授权
- wordpress - 提供带有低分辨率自定义徽标 WordPress 的图像
- python - 适用于 Python 的 Docker SDK:如何使用自定义 Dockerfile 和自定义上下文构建映像
- intellij-idea - 创建新的 Kotlin 控制台并创建测试让 ID 为“junit-jupiter”的 TestEngine 无法发现测试
- python - 重塑 pandas 数据框以匹配特定输出
- macos - Delphi 中的 TIOCEXCL
- excel - 如何跨 VBA 中的多个列独立运行此检查?
- r - 多重插补的倾向得分匹配