toGMTstring()和toUTCstring()有什么区别?

16

我正在使用Mongoose将数据保存在MongoDB服务器中,这是通过Node.js应用程序实现的。

请考虑以下代码:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var schemaObj = new Schema({
    field1: String,
    field2: String,
    Datefield: Date//So on...
});

mongooseDB = mongoose.createConnection('mongodb://myserver:port/DBname');
mongooseDB.on('error', console.error.bind(console, 'error in connection'));

mongooseDB.once('open', function (err) {
        var objmodel = db.model('myschema', schemaObj); 
        modelObj.field1 ='value1'; 
        modelObj.Datefield = new Date().toGMTString(); //new Date().toUTCString();
        //So on..
        modelObj.save(function (err) {
            if (err)    
                 //Notify err
            else
                //DO some task after save
        });

    });

在Datefield中,当我使用'toGMTstring()'或'toUTCstring()'时,会得到以下值。
 'Thu, 24 Jan 2013 05:49:04 GMT'

我浏览了以下链接:

toGMTString已被废弃,不应再使用

有人能帮我理解一下,在Node.js中toUTCstring()和toGMTstring()之间的区别是什么吗?

4个回答

25

GMT和UTC是不同的时区,它们分别是格林威治标准时间协调世界时。GMT是一个“太阳”时区,而UTC是一个“原子”时区。在大多数情况下,它们基本上是相同的东西,但UTC更具有“普遍性”。

有趣的是,您提到的toUTCString文档仍然显示GMT输出:

var today = new Date();
var UTCstring = today.toUTCString();
// Mon, 03 Jul 2006 21:44:38 GMT

为了应用程序之间的数据交换,我更喜欢使用类似ISO8601这样的格式,它使用“Z”后缀表示协调世界时(UTC):

2013-01-16T08:19Z

“Z”代表“Zulu时间”,很容易让人感到困惑!


0
从我的观察中,它们是相同的。MDN上的文档已经声明toGMTString已被弃用,应该使用toUTCString代替:

toGMTString()已被弃用,不再使用。它仅保留为向后兼容而实现,请改用toUTCString()


0

主要用于格式化日期和时间(人类可读)。您还可以使用toLocaleDateString()

var event = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

var options = { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric' };

console.log(event.toLocaleDateString('en-US', options));

-3

对于ISO使用toISOString()

var today = new Date();
var ISOstring = today.toISOString();
// 2020-08-03T23:59:58.123Z

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接