获取具有特定时区的当前日期和时间,用于不和谐机器人

时间:2021-06-18 05:26:56

标签: javascript discord.js

我正在尝试从时区 (NZT) 获取当前日期和时间,但不确定如何获取。目前,当我创建一个新日期时,它的时区设置为 GMT-0(或类似的东西,反正不是我想要的)。我需要能够在 NZT 中获取日期和时间(bot 不在新西兰运行,所以如果这是一个问题,那么......)感谢所有帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

我建议您使用 luxon。 它是最好的日期时间依赖项之一,远优于 JS-Inbuilt 日期时间系统。

以下代码应该可以满足您的需求:

const {
    DateTime
} = require('luxon');


var local = DateTime.local();
var rezoned = local.setZone("Pacific/Auckland");

如果确实需要将日期对象格式化为默认的 JavaScript 对象,可以使用以下代码:

const {
    DateTime
} = require('luxon');


function localDate() {

    let local = DateTime.local(); //initialize luxon Date-Object
    let rezonedString = local.setZone("Pacific/Auckland").toString(); //set timezone of Date-Object and convert to string
    var dateString = rezonedString.slice(0, -10) + "z"; //trim string to create default JavaScript Date-OBject
    var today = new Date(dateString); //convert dateString to JS Date-Object

    //fix Month index
    today.setMonth(today.getMonth() + 1);
    return today;

}

//set variable today to localDate in NZ
var today = localDate();
<块引用>

注意:这是 JavaScript 的解决方案!这是因为你标记了 discord.js,它是 Discord API 的 javaScript 框架