如何解决在JavaScript和date-fns中始终显示日期,无论时区如何
我正在使用NodeJS,后者目前在本地运行,但稍后将在其他地方运行(位置未知的服务器)。我正在使用date-fns
(2.14.0)和date-fns-tz
(1.0.10)库。我在英国,现在我们在BST(UTC + 1)上。
我将日期存储在不同的数据库/表中,这些日期保存在不同的时区中,并且我无法更改它,必须在找到它们时与它们一起工作。
在此示例中,我将使用2个日期。我采取了一些措施,导致保存了日期。
现在的UTC时间是:2020-09-18 10:57:00,BST:2020-09-18 11:57:00。对于这些示例,我将四舍五入到最近的分钟。
- TableA.Date = 2020-09-18 06:57:00
- TableB.Date = 2020-09-18 10:57:00
因此我可以看到TableA.Date保存在UTC-4中,而TableB.Date保存在UTC中。我相信UTC-4是美国东部夏令时(EDT)-美国波士顿,“美国/纽约”(IANA)。
我想在我的应用程序中以UTC显示所有日期,以便为用户提供一致的视图,并且用户将在世界范围内进行查看。
这甚至有可能吗?。
更新
我现在有这个:
function test (dateStr,tz) {
const toUtc = dateFnsTz.zonedTimetoUtc(dateStr,tz)
const toZonedTime = dateFnsTz.utcToZonedTime(toUtc,'UTC')
const formatted = dateFnsTz.format(toZonedTime,'dd MMM yyyy HH:mm:ss','UTC')
console.log(formatted)
return null
}
test('2020-09-18 06:57:00','America/New_York') // 18 Sep 2020 10:57:00
test('2020-09-18 10:57:00','UTC') // 18 Sep 2020 10:57:00
test('2020-09-18 11:57:00','Europe/London') // 18 Sep 2020 10:57:00
这是否能够持续工作,还是会打破夏令时或其他任何功能??
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。