ISO 날짜를 yyyy-mm-dd 날짜 형식으로 변환하는 방법은 무엇입니까?
ISO 8601 날짜에서 yyyy-mm-dd 형식의 날짜를 얻으려면 어떻게 해야 합니까?
나의 8601 데이트는
2013-03-10T02:00:00Z
다음 사항은 어떻게 받을 수 있습니까?
2013-03-10
문자열을 자르기만 하면 됩니다.
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);
사용해 보세요.
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);
date-fns 또는 Day.js를 체크아웃하여 다음과 같은 형식을 포함한 멋진 날짜 조작을 할 수 있습니다.YYYY-MM-DD
.
또는 ISO 문자열의 첫 번째 부분을 추출하기만 하면 이미 원하는 내용이 포함되어 있습니다.
"2013-03-10T02:00:00Z".slice(0, 10) // "2013-03-10"
다음은 날짜만 확인하기 위해 수행하는 작업입니다.
let isoDate = "2013-03-10T02:00:00Z";
alert(isoDate.split("T")[0]);
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
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"
Moment.js는 단일 사용 사례에 사용하기에 꽤 큰 라이브러리입니다.대신 사용하는 것이 좋습니다.기본적으로 Moment.js의 가장 많은 기능을 제공하며 번들 크기가 훨씬 작고 많은 기능을 제공합니다.
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
가는 길입니다.
사용.toLocaleDateString
스웨덴 로케일로 날짜를 ISO 형식으로 반환합니다.
function getISODate(date) {
//return date.toLocaleDateString('fr-CA');
return date.toLocaleDateString('sv-SE');
}
getISODate(new Date()); // '2022-03-24'
추신: 이전에는 캐나다의 'en-CA' 로케일에서 작동했지만, 적어도 2023년 2월부터 Firefox와 Cromium v110+는 미국 날짜 형식을 사용합니다.여전히 캐나다 'fr-CA' 로케일에서 작동합니다.어떤 것이 더 미래에 대비할 수 있는지 확실하지 않습니다.
날짜를 얻기 위해 분할, 슬라이스 및 기타 문자열 기반 시도를 사용하는 모든 사용자에게 표준 시간대 관련 실패를 설정할 수 있습니다!
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"
사용:
new Date().toISOString().substring(0, 10);
날짜가 YYY-MM-DD 형식으로 출력됩니다.
let date = new Date();
date = date.toISOString().slice(0,10);
형식을 지정하는 가장 좋은 방법은 toLocaleDateString 옵션과 함께 사용하는 것입니다.
const options = {year: 'numeric', month: 'numeric', day: 'numeric' };
const date = new Date('2013-03-10T02:00:00Z').toLocaleDateString('en-EN', options)
https://www.w3schools.com/jsref/jsref_tolocalestring.asp 에서 날짜 섹션에서 날짜 옵션을 확인하십시오.
날짜 개체에 날짜를 전달합니다.
var d = new Date('2013-03-10T02:00:00Z');
d.toLocaleDateString().replace(/\//g, '-');
날짜 개체가 있는 경우:
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)
rkrk의 솔루션을 확장하기 위해:형식에 시간이 포함되도록 하려면 다음을 추가할 수 있습니다.toTimeString()
다음과 같이 GMT 부분을 제거합니다.
var d = new Date('2013-03-10T02:00:00Z');
var fd = d.toLocaleDateString() + ' ' + d.toTimeString().substring(0, d.toTimeString().indexOf("GMT"));
@Hozefa의 더 나은 버전의 답변.
가지고 계신다면,date-fns
설치된 경우 형식을 사용할 수 있습니다.ISO 함수
const date = new Date(2019, 0, 2)
import { formatISO } from 'date-fns'
formatISO(date, { representation: 'date' }) // '2019-01-02' string
표준 시간대가 있는 경우 다음을 수행할 수 있습니다.
const myDate = "2022-10-09T18:30:00.000Z"
const requestTimezone = "Asia/Calcutta";
const newDate = new Date(myDate).toLocaleString("en-CA", {
dateStyle: "short",
timeZone: requestTimezone,
});
console.log(newDate)
>> 2022-10-10
다른 출력:
const myDate = "2022-10-02T21:00:00.000Z"
const requestTimezone = "Asia/Jerusalem";
>> 2022-10-03
const myDate = "2022-09-28T04:00:00.000Z"
const requestTimezone = "America/New_York";
>> 2022-09-28
경고: 대부분의 답은 틀렸습니다.
은 그이는 때문입니다.toISOString()
로컬 날짜가 아닌 UTC 날짜를 항상 반환합니다.들어이 "UTC 시간"인 0500
는 그리고신의당시간대는는zone시▁and▁is▁time입니다.GMT-0800
날toISOString()
UTC 날짜가 될 것이며, 이는 현지 표준 시간대 날짜보다 하루 앞서 있을 것입니다.
먼저 날짜를 로컬 날짜로 변환해야 합니다.
const date = new Date();
date.setTime(date.getTime() - date.getTimezoneOffset()*60*1000)
지금이다date.toISOString()
로컬 표준 시간대에 따라 항상 올바른 날짜를 반환합니다.
하지만 잠깐, 더 있어요.만약 우리가 또한 사용하고 있다면,toTimeString()
입니다.toTimeString()
UTC로 가정하고 변환합니다.그래서 우리는 먼저 추출할 필요가 있습니다.toTimeString()
변환하기 전에 변수로 사용할 수 있습니다.
그Date()
자바스크립트의 클래스는 이것 때문에 일관성이 없으며 이러한 혼란을 피하기 위해 정말로 업데이트되어야 합니다.toISOString()
그리고.toTimeString()
메소드는 둘 다 표준 시간대와 관련하여 동일한 기본 작업을 수행해야 합니다.
사용한 항목:
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/
var d = new Date("Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)");
alert(d.toLocaleDateString());
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;
현재 시간대에서 날짜를 찾고 있는 경우 이러한 답변 중 많은 수가 잠재적으로 잘못된 출력을 제공합니다.
이 기능은 날짜의 표준 시간대 오프셋에 해당하는 날짜를 출력합니다.
const adjustDateToLocalTimeZoneDayString = (date?: Date) => {
if (!date) {
return undefined;
}
const dateCopy = new Date(date);
dateCopy.setTime(dateCopy.getTime() - dateCopy.getTimezoneOffset()*60*1000);
return dateCopy.toISOString().split('T')[0];
};
테스트:
it('return correct day even if timezone is included', () => {
// assuming the test is running in EDT timezone
// 11:34pm eastern time would be the next day in GMT
let result = adjustDateToLocalTimeZoneDayString(new Date('Wed Apr 06 2022 23:34:17 GMT-0400'));
// Note: This is probably what a person wants, the date in the current timezone
expect(result).toEqual('2022-04-06');
// 11:34pm zulu time should be the same
result = adjustDateToLocalTimeZoneDayString(new Date('Wed Apr 06 2022 23:34:17 GMT-0000'));
expect(result).toEqual('2022-04-06');
result = adjustDateToLocalTimeZoneDayString(undefined);
expect(result).toBeUndefined();
});
오해의 소지가 있는 접근 방식:
답변의 하는 것입니다.ISOString().split()
접근 방식, 아래의 출력이 예상되는 것과 어떻게 다른지 주목하십시오.
it('demonstrates how the simple ISOString().split() may be misleading', () => {
// Note this is the 7th
expect(new Date('Wed Apr 06 2022 23:34:17 GMT-0400').toISOString().split('T')[0]).toEqual('2022-04-07');
});
연도 또는 월을 쉽게 얻을 수 있는 방법
let isoDateTime = "2013-03-10T02:00:00Z";
console.log(isoDateTime.split("T")[0]); //2013-03-10
분할 방법 사용
console.log(isoDateTime.split("-")[0]); //2013
console.log(isoDateTime.split("-")[1]); //03
다음은 ISO 8601 타임스탬프를 읽을 수 있는 현지 날짜 및 시간으로 변환하기 위한 짧은 Javascript 코드입니다.
varmyDate = 새 날짜('2013-03-10T02:00:00Z').toString(); console.log(myDate);
출력:2013년 3월 10일 일요일 07:45:00 GMT+0545 (네팔 시간)
$209(날짜).형식("YYY-MM-DD")
아래 코드를 사용합니다.그것은 당신에게 유용합니다.
let currentDate = new Date()
currentDate.toISOString()
언급URL : https://stackoverflow.com/questions/25159330/how-to-convert-an-iso-date-to-the-date-format-yyyy-mm-dd
'source' 카테고리의 다른 글
모든 jquery 이벤트를 $(문서)로 바인딩해야 합니까? (0) | 2023.07.28 |
---|---|
모바일 웹의 최대 장치 너비와 최대 너비의 차이점은 무엇입니까? (0) | 2023.07.28 |
Spring Security 및 jQuery를 사용하여 만료된 세션을 처리하는 방법은 무엇입니까? (0) | 2023.07.28 |
MariaDB의 JSON 배열에서 값을 필터링하는 방법은 무엇입니까? (0) | 2023.07.28 |
Cython 코드를 포함하는 Python 패키지를 구성하는 방법 (0) | 2023.07.23 |