如何在没有毫秒和Z的情况下在ISO 8601中的javascript中输出日期

时间:2015-12-02 21:49:48

标签: javascript date iso8601

以下是在JavaScript中将日期序列化为ISO 8601字符串的标准方法:

var now = new Date();
console.log( now.toISOString() );
// outputs '2015-12-02T21:45:22.279Z'

我需要相同的输出,但没有毫秒。如何输出2015-12-02T21:45:22Z

6 个答案:

答案 0 :(得分:75)

简单方法:

console.log( now.toISOString().split('.')[0]+"Z" );

答案 1 :(得分:7)

使用切片删除不需要的部分

var now = new Date();
alert( now.toISOString().slice(0,-5)+"Z");

答案 2 :(得分:7)

这是解决方案:

var now = new Date(); 
var str = now.toISOString();
var res = str.replace(/\.[0-9]{3}/, '');
alert(res);

找到了。 (点)并删除3个字符。

http://jsfiddle.net/boglab/wzudeyxL/7/

答案 3 :(得分:5)

您可以结合使用split()shift()ISO 8601字符串中除去毫秒:

let date = new Date().toISOString().split('.').shift() + 'Z';

console.log(date);

答案 4 :(得分:2)

或者可能用这个覆盖它? (这是来自here

的修改后的polyfill
function pad(number) {
  if (number < 10) {
    return '0' + number;
  }
  return number;
}

Date.prototype.toISOString = function() {
  return this.getUTCFullYear() +
    '-' + pad(this.getUTCMonth() + 1) +
    '-' + pad(this.getUTCDate()) +
    'T' + pad(this.getUTCHours()) +
    ':' + pad(this.getUTCMinutes()) +
    ':' + pad(this.getUTCSeconds()) +
    'Z';
};

答案 5 :(得分:0)

类似于@STORM的答案:

const date = new Date();

console.log(date.toISOString());
console.log(date.toISOString().replace(/[.]\d+/, ''));