sourcecode

날짜 문자열이 ISO 및 UTC 형식인지 확인합니다.

codebag 2023. 6. 7. 22:47
반응형

날짜 문자열이 ISO 및 UTC 형식인지 확인합니다.

이 형식의 문자열이 있습니다.2018-02-26T23:10:00.780ZISO8601과 UTC 형식인지 확인하고 싶습니다.

let date= '2011-10-05T14:48:00.000Z';
const error;
var dateParsed= Date.parse(date);
if(dateParsed.toISOString()==dateParsed && dateParsed.toUTCString()==dateParsed) {
  return  date;
}
else  {
  throw new BadRequestException('Validation failed');
}

문제는 다음과 같습니다.

  • 오류 메시지가 표시되지 않음
  • Date.parse() 문자열 날짜 형식을 다음으로 변경합니다.1317826080000ISO 또는 UTC 형식과 비교할 수 없습니다.

저는 moment.js와 같은 라이브러리를 사용하지 않을 것입니다.

시도 - 문자열을 구문 분석하는 대신 실제로 날짜 개체를 만들어야 합니다.

참고: 게시한 대로 문자열을 테스트합니다.

YYYY-MM-DDTHH:MN:SS.MSSZ

다음과 같은 유효한 ISO8601 날짜에 실패합니다.

  • 날짜: 2018-10-18
  • UTC 기준 날짜 및 시간 합산: 2018-10-18T08:04:30+00:00(00:00에 Z 및 TZ 제외)
  • 2018-10-18T08:04:30Z
  • 20181018T080430Z
  • 주: 2018-W42
  • 주 번호가 있는 날짜: 2018-W42-4
  • 연도가 없는 날짜: --10-18(ISO8601:2000의 마지막, RFC 6350[2]에서 사용 중)
  • 주문일자: 2018-291

잘못된 날짜 문자열을 더 이상 허용하지 않습니다.

function isIsoDate(str) {
  if (!/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/.test(str)) return false;
  const d = new Date(str); 
  return d instanceof Date && !isNaN(d.getTime()) && d.toISOString()===str; // valid date 
}

console.log(isIsoDate('2011-10-05T14:48:00.000Z'))

console.log(isIsoDate('2018-11-10T11:22:33+00:00'));

console.log(isIsoDate('2011-10-05T14:99:00.000Z')); // invalid time part 

let date= '2011-10-05T14:48:00.000Z';
var dateParsed= new Date(Date.parse(date));
//dateParsed
//output: Wed Oct 05 2011 19:48:00 GMT+0500 (Pakistan Standard Time)
if(dateParsed.toISOString()==date) {
   //Date is in ISO
}else if(dateParsed.toUTCString()==date){
  //DATE os om UTC Format
}

당신이 원하는 것은 다음과 같습니다.

let date= '2011-10-05T14:48:00.000Z';
const dateParsed = new Date(Date.parse(date))

if(dateParsed.toUTCString() === new Date(d).toUTCString()){
   return  date;
} else {
     throw new BadRequestException('Validation failed'); 
}

그것이 확실하기를 바랍니다!

언급URL : https://stackoverflow.com/questions/52869695/check-if-a-date-string-is-in-iso-and-utc-format

반응형