【发布时间】:2023-03-22 20:37:01
【问题描述】:
我一直在使用 MomentJS,但我正在开始一个新项目,我不想包含这个库,因为我只玩过几次日期。
所以我要做的是获取日期的字符串表示形式,采用类似 ISO 的格式('YYYY-MM-DDZHH:mm:ss' 或 'YYYY-MM-DD HH:mm:ss ')。我不希望它在 UTC:我希望它在给定的时区(我可以以编程方式提供)。
例如,现在的表示将是“2017-04-11 11:20:00”(法国时区 - 相当于“2017-04-11 09:22:00Z”。)
我想要原生 Javascript。我一直在玩toLocaleString,但没有成功。
谢谢
[编辑] 在一个完美的世界中,我正在寻找一个采用日期格式、时区并返回我想要的字符串的函数。喜欢:
function magicDateFormatter(format, tz) {
/* ... */
}
var now = new Date();
console.log(magicDateFormatter('YYYY-MM-DD HH:mm:ss', 'Europe/Paris'));
// print "2017-04-11 11:20:00"
【问题讨论】:
-
你为什么不想包括一些可以让你所遇到的问题消失的东西?
-
因为为几个操作加载一个库是多余的
-
取决于您通过尝试实施这些“几种方法”而产生的技术债务量。如果你不想要一个库,为什么不只看你想要的内容呢?
-
内置 Date 对象方法中没有容量来执行您的要求。你最终会写出与当前做同样事情的库几乎相同的东西。 ECMA-402 Internationalisation API 取决于实现,因此虽然您可以指定部件和语言,但不能精确指定格式。此外,它指定语言,而不是位置,即使语言参数被错误地称为“语言环境”。
-
只是IANA timezone database的数据部分,包含你需要的时区信息,是205kb。
标签: javascript date timezone