我正在尝试检查“日期时间”字符串是否为 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
你检查设置了吗?网站上有几种解决方案