我只是想知道是否可以将日期字符串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'))