我只是想知道是否可以将日期字符串YYMMDD转换为YYYY-MM-DD,例如JavaScript中的990102-> 1999-01-02

从评论中编辑:

如果提供了日期200102,则需要输出2012-01-02,而不是1920-01-02

最佳答案

除非您提供有关何时使用2000+和何时使用1900+的条件,否则您不能。它在YY中的信息基本上较少,成千上万的信息丢失了。没有明显的方法来确定14是2014年还是1914年

因此,您可以使用[1990 - 2089]这样的窗口。因此,如果YY>=90使用1900+。如果YY<90使用2000+,则可以根据您的要求调整窗口

我不确定使用什么窗口是否有任何标准。

@Kos说:



@RobG



//990102 -> 1999-01-02
//using window [1990-2089]
function convertDate(yymmdd) {
  var d = yymmdd; // YYMMDD
  var yy = d.substr(0, 2);
  var mm = d.substr(2, 2);
  var dd = d.substr(4, 2);
  var yyyy = (+yy < 90) ? '20' + yy : '19' + yy;
  return yyyy + '-' + mm + '-' + dd;
}
console.log(convertDate('900102'))
console.log(convertDate('140102'))
console.log(convertDate('890102'))

07-26 01:02