日期奇怪的时区 (GMT+0009)

Date weird timezone (GMT+0009)

我使用 ExcelJS 将 Excel 解析为 JavaScript 对象。

这是一个 excel 示例:

如您所见,我必须涵盖日期和时间的多种格式。对于约会我没有问题。但是当涉及到小时时,具有“12:30”和“15:00”值的单元格将作为 javascript 日期对象返回。所以我检查它是日期还是字符串,我想获取字符串值(10H10 和 18h30 单元格可以,因为它们被视为字符串而不是 15:00 和 12:30)。

当使用 VSCode 调试工具时,我可以看到我有这个日期:

我想要的是一种将此结果转换为字符串“12:30”或“15:30”的方法。我使用时刻和日期函数尝试了很多事情,例如 .toUTCString().toGMTString()...

我假设你有一个 JS Date 对象。

建议

Intl.DateTimeFormat 为用户格式化日期 and/or 次。

但是既然你想要一个特定的格式,那么自己格式化可能会更容易。

但是时间不在正确的时区。您首先必须将其转换为正确的时区。除了正确的时区是 UTC,我们可以在不进行任何转换的情况下访问有关日期时间的 UTC 表示的组件的信息。

[
   dt.getUTCHours(),
   dt.getUTCMinutes().toString().padStart(2, '0'),
].join(":")