javascript - 检查 ISO 数据格式不起作用

我正在尝试检查“日期时间”字符串是否为 ISO 格式,我得到以下输出:

isIsoDate the date string is not ISO format! :  2022-04-21T09:40:01.000Z
isIsoDate converted-back date :  2022-04-21T09:40:01.000Z
isIsoDate time stamp number :  1650534001000
isIsoDate string builded back :  Thu Apr 21 2022 11:40:01 GMT+0200 (Ora legale dell’Europa centrale)

这是我的代码:

export function isIsoDate(dateString) {
    
        var dateParsedNum = Date.parse(dateString);
        var dateBackToString = new Date(dateParsedNum);
        var stringBuilded = "";
    
    
        stringBuilded = dateBackToString.toString()
    
    
        if ((dateBackToString.toString()) == dateString) {
            return true;
            
        } else {
           console.debug("isIsoDate() the date string is not ISO format! : ", dateString);
           console.debug("isIsoDate() converted-back date : ", dateBackToString);
           console.debug("isIsoDate() time stamp number : ", dateParsedNum);
           console.debug("isIsoDate() string builded back : ", stringBuilded);
           // throw new BadRequestException('Validation failed');
        }
    
        return(false)
    }

回答1

我不确定是否可以使用 JavaScript 的 Date 实用程序来完成。正如 Salman 在评论中所说,您可以使用 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString 代替,但是这种方法会将所有内容都转换为 UTC,而 ISO 规范比这更灵活。

我推荐https://stackoverflow.com/a/28022901/6739891,它使用 RegEx 来验证 ISO 字符串。

回答2

你检查设置了吗?网站上有几种解决方案