[javascript] 이 형식은 T00 : 00 : 00.000Z를 의미합니까?

누군가가 자바 스크립트로 이러한 유형의 형식을 설명해 주시겠습니까?

 T00:00:00.000Z

그리고 그것을 파싱하는 방법?



답변

ISO-8601 날짜 표현 의 일부입니다 . 이 패턴의 완전한 날짜 표현에는 날짜도 포함되어야하므로 불완전합니다.

2015-03-04T00:00:00.000Z //Complete ISO-8601 date

이 날짜를있는 그대로 구문 분석하려고하면 Invalid Date오류가 발생합니다.

new Date('T00:00:00.000Z'); // Invalid Date

따라서이 형식으로 타임 스탬프를 구문 분석하는 방법은 모든 날짜와 연결하는 것입니다.

new Date('2015-03-04T00:00:00.000Z'); // Valid Date

그런 다음 원하는 부분 만 추출 할 수 있습니다 (타임 스탬프 부분).

var d = new Date('2015-03-04T00:00:00.000Z');
console.log(d.getUTCHours()); // Hours
console.log(d.getUTCMinutes());
console.log(d.getUTCSeconds());


답변

나는 moment.js이것을 위해 사용 하는 것이 좋습니다 . moment.js에서는 다음을 수행 할 수 있습니다.

var localTime = moment().format('YYYY-MM-DD'); // store localTime
var proposedDate = localTime + "T00:00:00.000Z";

이제 올바른 형식을 얻었으므로 유효한 경우 구문 분석하십시오.

var isValidDate = moment(proposedDate).isValid();
// returns true if valid and false if it is not.

시간 부분을 얻으려면 다음과 같이 할 수 있습니다.

var momentDate = moment(proposedDate)
var hour = momentDate.hours();
var minutes = momentDate.minutes();
var seconds = momentDate.seconds();

// or you can use `.format`:
console.log(momentDate.format("YYYY-MM-DD hh:mm:ss A Z"));

momentjs에 대한 자세한 정보 http://momentjs.com/


답변

한 사람이 이미 제안했듯이

ISO 8601 날짜 문자열을 순간에 직접 전달했습니다 .

`moment.utc('2019-11-03T05:00:00.000Z').format('MM/DD/YYYY')`

또는

`moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')`

이러한 솔루션 중 하나는 동일한 결과를 제공합니다.

`console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019`


답변

또는 패턴 ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME;
대신 DateTimeFormatter 를 사용하십시오.DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")

이것은 아래 내 문제를 해결했습니다.

java.time.format.DateTimeParseException : ‘2019-12-18T19 : 00 : 00.000Z’텍스트를 인덱스 10에서 파싱 할 수 없습니다.


답변