【问题标题】:How to get current date for timezone in javascripts如何在javascript中获取时区的当前日期
【发布时间】:2021-12-16 23:53:35
【问题描述】:

我的时区模式格式如下“2021-10-29T18:01:23+07:00”, 所以我想得到与上面相同时区的当前时间,有人可以帮我解决这个问题吗,

我试过这段代码,但它不起作用

new Date().toGMTString()

非常感谢。

【问题讨论】:

标签: javascript android reactjs react-native timezone


【解决方案1】:

一般来说,我建议您研究 MomentsJS。在使用 Date 时非常有帮助。它带有格式功能以及您可以安全地添加或减少日期的功能。

MomentJS 文档:https://momentjs.com/

【讨论】:

    【解决方案2】:

    使用原生 Date 方法,您可以获得的最接近的方法是使用:

    new Date().toISOString() // '2021-11-02T13:12:26.229Z'
    

    但这会返回 GTM 时间,要以您指定的模式获取本地时间,您必须自己格式化:

    function formatDateString(date) {
        //Function to format numbers (prepending leading zero and adding sign)
        const f = (n, sign = false) => (sign ? (n < 0 ? "-" : "+") : "") + n.toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false });
    
        //Compute Date, Time and Zone
        const d = `${date.getFullYear()}-${f(date.getMonth() + 1)}-${f(date.getDate())}`;
        const t = `${f(date.getHours())}:${f(date.getMinutes())}:${f(date.getSeconds())}`;
        const z = `${f(-date.getTimezoneOffset() / 60, true)}:00`;
    
        //Return it all together
        return `${d}T${t}${z}`;
    }
    
    var mydate = new Date();
    
    console.log(mydate.toISOString());
    console.log(formatDateString(mydate));

    或者您可以使用 3rd 方库,例如 MomentJS

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 2014-09-08
      • 1970-01-01
      • 2010-11-21
      • 2012-04-29
      • 2017-12-13
      • 2016-09-27
      相关资源
      最近更新 更多