javascript - 如何在javascript lwc中停止新日期对象的时区转换?
问题描述
我收到具有不同时区的日期时间字符串(例如 '2020-10-28T08:00:00+10:00, 2020-10-28T11:00:00+11:00')。当我创建新的日期对象时,它将字符串转换为当前用户时区,在 UI 上显示不同的日期和时间,而不是显示正在接收的内容。如何停止时区转换?
解决方案
如果 LWC 使用 JavaScriptDate
对象,那么很抱歉 - 但您无能为力。您描述的行为是Date
对象的工作方式。
该Date
对象在内部仅跟踪时间戳,该时间戳是自 Unix 纪元以来的毫秒数:1970-01-01T00:00:00.000Z (UTC)。如果您解析带有偏移量的字符串,则在确定时间戳时会考虑该偏移量。如果您使用 来创建字符串toString()
,它会使用系统本地时区将时间戳转换为字符串。您解析的原始字符串或其偏移量不会保留在Date
对象中。
我对 LWC 了解不多,但总的来说,您只能通过不使用Date
对象而使用其他东西来解决这个问题。有许多优秀的 JavaScript 日期库可供选择,例如Luxon。
推荐阅读
- python - Pynput 侦听器不允许带有字母数字字符的 if 语句
- powershell - 如何创建 2 个运行时间相差一小时但从不重叠的计划任务?
- excel - 宏不运行公式?
- angular - 订阅多个异步 http 调用
- angular - 这个函数有什么问题?当我运行 ng serve (Angular) 时,它经常显示语法错误
- kubernetes - 当 CPU 使用率受策略限制时,kubernetes pod 使用多少个内核?
- aem - 如何在组件级别访问 URL 选择器
- xslt - 难以访问属性值 (Xpath) XSLT
- css - 如何增加 mat-accordion 中箭头的大小
- c# - 在 BouncyCastle 中导入公共/私有 ECDH 密钥