首页 > 解决方案 > 获取具有特定时区的当前日期和时间以用于不和谐机器人

问题描述

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

标签: javascriptdiscord.js

解决方案


我建议你使用 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 框架


推荐阅读