从当前日期获取GMT字符串

Get GMT String from current Date

本文关键字:字符串 GMT 获取 当前日期      更新时间:2023-09-26

我可以获得所需的输出格式,但不能获得正确的时间。我需要在格林尼治标准时间(+4小时)

var dt = new Date();
var dt2 = dt.toString('yyyyMMddhhmmss');

有什么想法吗?输出看起来像:

20120403031408

我可以通过以下操作获得标准字符串格式的GMT:

dt.toUTCString();

但我无法将其转换回yyyyMMddhhmmss字符串

编辑:我使用的是date.js库

date.jstoString(format)在格式化日期时没有指定"UTC"的选项。方法本身(位于文件底部)从不引用Date的任何getUTC...方法,这对于支持这样的选项是必要的。

您可以考虑使用不同的库,例如Steven Levitan的dateFormat。使用它,您可以在format前面加上UTC:,或者在format:之后传递true

var utcFormatted = dateFormat(new Date(), 'UTC:yyyyMMddhhmmss');
var utcFormatted = dateFormat(new Date(), 'yyyyMMddhhmmss', true);
// also
var utcFormatted = new Date().format('yyyyMMddhhmmss', true);

您也可以编写自己的函数,正如Dominic所展示的那样。

关键是使用getUTC函数:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

/* use a function for the exact format desired... */  
function ISODateString(d){  
  function pad(n) { return n < 10 ? '0'+n : n }
  return d.getUTCFullYear() + '-'  
       + pad(d.getUTCMonth() +1) + '-'  
       + pad(d.getUTCDate()) + 'T'  
       + pad(d.getUTCHours()) + ':'  
       + pad(d.getUTCMinutes()) + ':'  
       + pad(d.getUTCSeconds()) + 'Z'  
}  
var d = new Date();  
console.log(ISODateString(d)); // prints something like 2009-09-28T19:03:12Z