javascript - 在服务器端Javascript中以与UTC日期相同的显示格式获取语言环境日期

标签 javascript node.js momentjs

我有一个日期,例如

let date = new Date('2019-05-15T13:06:41Z')

我希望获得完全相同的格式,但在提供的语言环境中。这是在服务器上,所以我也传递了一个语言环境(我确实可以访问)

假设服务器位于美国,但我有一个 en-GB 语言环境。我想以完全相同的格式获取日期和时间,例如 yyyy-mm-ddThh:mm:ss 但在我传入的任何语言环境中。

所以在上面的例子中它应该返回(占 BST)

2019-05-15T14:06:41

我知道在客户端我可以做:

let date = new Date('2019-05-15T13:06:41Z')
let formatted_date = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + "T" + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() 

但正如我在服务器上所说的那样,这将不起作用,因为它基于服务器时间而不是我需要的语言环境。

很高兴使用 momentjs 或类似的东西,如果这很容易实现的话

最佳答案

这听起来像是 moment-timezone 的工作

注意:语言环境不会也不能 1:1 映射到时区。

let date = new Date('2019-05-15T13:06:41Z');
moment(date).tz('Asia/Tokyo').toISOString(true);       // 2019-05-15T22:06:41.000+09:00
moment(date).tz('Asia/Kolkata').toISOString(true);     // 2019-05-15T18:36:41.000+05:30
moment(date).tz('America/New_York').toISOString(true); // 2019-05-15T09:06:41.000-04:00"

关于javascript - 在服务器端Javascript中以与UTC日期相同的显示格式获取语言环境日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56150656/

相关文章:

javascript - 在 AJAX 调用中通过查询字符串发送时丢失 unicode 字符

javascript - 如何在不循环的情况下更新数组内的 JS 对象值?

node.js - Heroku Redis 去

mysql - 使用 Node.js/Sinon 测试 MySQL INSERT 结果

JavaScript 时刻格式日期字符串

javascript - 安卓 : Use javascript in textview

javascript - 在 Javascript 中将字符转换为星号

javascript - SQLite DB 每次都会在phonegap 中填充

javascript - moment.js isoWeek 不适用于 Heroku 实例

angular - 将 Rollup 用于 Angular 2 的 AoT 编译器并导入 Moment.js