首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nodejs中从TZDATA获取TimeZone代码

在nodejs中从TZDATA获取TimeZone代码
EN

Stack Overflow用户
提问于 2022-04-27 10:23:39
回答 1查看 163关注 0票数 0

我正在创建logger.js来创建一些干净的日志。但是,我很难以预期的格式获得时区。我用process.env.TZ(Unix )格式化欧洲大陆/区域,但想要格式为000x

到目前为止,这就是我所拥有的:

代码语言:javascript
复制
/** 
 * Just. Clean. Logs.
 * Usage:
 * const logger = new Logger('mymodule');
 * logger.log('info', 'This is a log message');
 * @summary LOGS!
 * @param {string} stat - Application or module the log data is coming from
 */
class Logger {
    constructor(stat){
        this.stat = stat.toUpperCase();
    }
/** 
* @summary Log to console
* @param {string} level - Log level i.e WARN, INFO, DEBUG, ERROR etc.
* @param {string} message - Log message
*/
    log(level, message){
        const d = new Date(Date.now());
        const timestamp = `${d.getFullYear()}-${d.getMonth()+1}-${d.getDate()}:${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}.${process.env.TZ}`;
        console.log(`${timestamp} ${level.toUpperCase()}:${this.stat}:${message}`);
    }
}

module.exports = Logger;

如果创建一个排序数组并手动分配代码的答案,我在哪里可以找到这样的数据的综合列表?我已经找到了一些密码,但不确定它们是否是我要找的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-28 10:55:15

不幸的是,d.getTimezoneOffset()process.env.TZ都不了解DST,所以没有现成的javascript来解决您的问题。

有一些第三方库用于处理javascript中的时区和DST,这可能对您有所帮助。无耻的插件:我自己的tzdata-javascript.org就是其中之一。

尽管如此,我强烈鼓励您在日志中使用UTC时间戳。它使比较来自不同系统的日志变得容易得多,这些系统可能不在同一时区,也消除了DST的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72027139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档