ISO 8601 날짜 에서 yyyy-mm-dd 형식의 날짜를 얻으려면 어떻게 해야합니까?
내 8601 데이트는
2013-03-10T02:00:00Z
다음을 어떻게 얻을 수 있습니까?
2013-03-10
date.split("T")[0]
할 것
ISO 8601 날짜 에서 yyyy-mm-dd 형식의 날짜를 얻으려면 어떻게 해야합니까?
내 8601 데이트는
2013-03-10T02:00:00Z
다음을 어떻게 얻을 수 있습니까?
2013-03-10
date.split("T")[0]
할 것
답변:
이 시도
date = new Date('2013-03-10T02:00:00Z');
date.getFullYear()+'-' + (date.getMonth()+1) + '-'+date.getDate();//prints expected format.
최신 정보:-
주석에서 지적했듯이 필요한 경우 날짜와 월에 선행 0을 인쇄하도록 답변을 업데이트하고 있습니다.
date = new Date('2013-08-03T02:00:00Z');
year = date.getFullYear();
month = date.getMonth()+1;
dt = date.getDate();
if (dt < 10) {
dt = '0' + dt;
}
if (month < 10) {
month = '0' + month;
}
console.log(year+'-' + month + '-'+dt);
문자열을 자르십시오.
var date = new Date("2013-03-10T02:00:00Z");
date.toISOString().substring(0, 10);
또는 문자열에서 날짜 만 필요한 경우.
var strDate = "2013-03-10T02:00:00Z";
strDate.substring(0, 10);
YYYYY-MM-DD
10000 년 이 될 것이기 때문에 코드가 손상 될 수 있다는 것 입니다.이를 방지하려면 T
대신 문자. ( en.wikipedia.org/wiki/Year_10,000_problem 참조 )
Moment.js 는 날짜 형식을 처리합니다. 다음은 JavaScript 태그를 통해 포함하는 방법과 날짜 형식을 지정하기 위해 Moment.js를 사용하는 방법의 예입니다.
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
moment("2013-03-10T02:00:00Z").format("YYYY-MM-DD") // "2013-03-10"
.toISODateString()
는 ... 매우 빈번한 경우이기 때문에,
이것은 내가 날짜 만 얻는 것입니다.
let isoDate = "2013-03-10T02:00:00Z";
alert(isoDate.split("T")[0]);
Moment.js 는 단일 사용 사례에 사용할 수있는 매우 큰 라이브러리입니다. date-fns
대신 사용 하는 것이 좋습니다 . 기본적으로 번들 크기가 훨씬 작고 formatting options
.
import format from 'date-fns/format'
format('2013-03-10T02:00:00Z', 'YYYY-MM-DD'); // 2013-03-10, YYYY-MM-dd for 2.x
한 가지 주목할 점은 ISO 8601 시간 형식이므로 브라우저는 일반적으로 UTC 시간에서 현지 시간대로 변환합니다. 이것은 당신이 아마 할 수있는 간단한 사용 사례이지만 '2013-03-10T02:00:00Z'.substring(0, 10);
.
더 복잡한 변환 date-fns
은 갈 길입니다.
let isoDate = "2013-03-10T02:00:00Z";
var d = new Date(isoDate);
d.toLocaleDateString('en-GB'); // dd/mm/yyyy
d.toLocaleDateString('en-US'); // mm/dd/yyyy
날짜 개체에 날짜를 전달하십시오.
var d = new Date('2013-03-10T02:00:00Z');
d.toLocaleDateString().replace(/\//g, '-');
날짜를 얻기 위해 분할, 슬라이스 및 기타 문자열 기반 시도를 사용하는 모든 사람들에게 시간대 관련 실패에 대해 스스로 설정할 수 있습니다!
ISO-String에는 Zulu-Timezone과이 시간대에 따른 날짜가 있습니다. 즉, 변환 체인에서 고려해야하는 실제 시간대보다 하루 전 또는 그 이후의 날짜를 사용할 수 있습니다.
이 예를 참조하십시오.
const timeZoneRelatedDate = new Date(2020, 0, 14, 0, 0);
console.log(timeZoneRelatedDate.toLocaleDateString(
'ja-JP',
{
year: 'numeric',
month: '2-digit',
day: '2-digit'
}
).replace(/\//gi,'-'));
// RESULT: "2020-01-14"
console.log(timeZoneRelatedDate.toISOString());
// RESULT: "2020-01-13T23:00:00.000Z" (for me in UTC+1)
console.log(timeZoneRelatedDate.toISOString().slice(0,10));
// RESULT: "2020-01-13"
날짜 개체가있는 경우 :
let date = new Date()
let result = date.toISOString().split`T`[0]
console.log(result)
또는
let date = new Date()
let result = date.toISOString().slice(0, 10)
console.log(result)
rk rk 의 솔루션 을 확장하려면 : 형식에 시간을 포함하려면 toTimeString()
을 문자열에 추가 한 다음 다음과 같이 GMT 부분을 제거 할 수 있습니다 .
var d = new Date('2013-03-10T02:00:00Z');
var fd = d.toLocaleDateString() + ' ' + d.toTimeString().substring(0, d.toTimeString().indexOf("GMT"));
나는 이것을 사용했다 :
HTMLDatetoIsoDate(htmlDate){
let year = Number(htmlDate.toString().substring(0, 4))
let month = Number(htmlDate.toString().substring(5, 7))
let day = Number(htmlDate.toString().substring(8, 10))
return new Date(year, month - 1, day)
}
isoDateToHtmlDate(isoDate){
let date = new Date(isoDate);
let dtString = ''
let monthString = ''
if (date.getDate() < 10) {
dtString = '0' + date.getDate();
} else {
dtString = String(date.getDate())
}
if (date.getMonth()+1 < 10) {
monthString = '0' + Number(date.getMonth()+1);
} else {
monthString = String(date.getMonth()+1);
}
return date.getFullYear()+'-' + monthString + '-'+dtString
}
출처 : http://gooplus.fr/en/2017/07/13/angular2-typescript-isodate-to-html-date/
let dt = new Date('2013-03-10T02:00:00Z');
let dd = dt.getDate();
let mm = dt.getMonth() + 1;
let yyyy = dt.getFullYear();
if (dd<10) {
dd = '0' + dd;
}
if (mm<10) {
mm = '0' + mm;
}
return yyyy + '-' + mm + '-' + dd;
@Hozefa 의 더 나은 답변 버전 .
당신이 경우 date-fns
설치, 당신은 사용할 수 formatISO의 기능을
const date = new Date(2019, 0, 2)
import { formatISO } from 'date-fns'
formatISO(date, { representation: 'date' }) // '2019-01-02' string