Responsive Advertisement

JavaScript Date ๊ฐ์ฒด: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•

JavaScript์—์„œ Date ๊ฐ์ฒด๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ํŠน์ • ๋‚ ์งœ๋ฅผ ์„ค์ •ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ๋‚ ์งœ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” JavaScript์˜ Date ๊ฐ์ฒด์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ , ์‹ค๋ฌด์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Date ๊ฐ์ฒด ์ƒ์„ฑํ•˜๊ธฐ

JavaScript์—์„œ Date ๊ฐ์ฒด๋Š” new Date()๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒ์„ฑ๋œ Date ๊ฐ์ฒด๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

1. ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ๊ฐ€์ ธ์˜ค๊ธฐ

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ new Date()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

const now = new Date();
console.log(now);
// ์˜ˆ์‹œ ๊ฒฐ๊ณผ: 2023-09-12T12:34:56.789Z

์œ„ ์˜ˆ์ œ๋Š” ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ํฌํ•จํ•œ Date ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ๋˜๋Š” ์‹œ๊ฐ„์€ ๊ตญ์ œ ํ‘œ์ค€์‹œ(UTC) ๊ธฐ์ค€์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

2. ํŠน์ • ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์„ค์ •ํ•˜๊ธฐ

Date ๊ฐ์ฒด๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํŠน์ • ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…„, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const date1 = new Date('2024-09-12');
console.log(date1);  // ๊ฒฐ๊ณผ: Thu Sep 12 2024

const date2 = new Date(2024, 8, 12);  // ์›”์€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ 8์€ 9์›”์„ ์˜๋ฏธ
console.log(date2);  // ๊ฒฐ๊ณผ: Thu Sep 12 2024

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ๋ฌธ์ž์—ด๋กœ ๋‚ ์งœ๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜, ๋…„, ์›”, ์ผ์„ ์ˆซ์ž๋กœ ์ง€์ •ํ•˜์—ฌ Date ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ์›”์€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ, 9์›”์„ ๋‚˜ํƒ€๋‚ด๋ ค๋ฉด 8์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๊ด€๋ จ ๋ฉ”์„œ๋“œ

Date ๊ฐ์ฒด๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‚ ์งœ์˜ ํŠน์ • ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜, ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์‹œ๊ฐ„ ๊ฐ€์ ธ์˜ค๊ธฐ

๋‹ค์Œ ๋ฉ”์„œ๋“œ๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด Date ๊ฐ์ฒด์—์„œ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

const now = new Date();

console.log(now.getFullYear());  // ์—ฐ๋„ ๊ฐ€์ ธ์˜ค๊ธฐ
console.log(now.getMonth());     // ์›” ๊ฐ€์ ธ์˜ค๊ธฐ (0๋ถ€ํ„ฐ ์‹œ์ž‘)
console.log(now.getDate());      // ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ
console.log(now.getHours());     // ์‹œ ๊ฐ€์ ธ์˜ค๊ธฐ
console.log(now.getMinutes());   // ๋ถ„ ๊ฐ€์ ธ์˜ค๊ธฐ
console.log(now.getSeconds());   // ์ดˆ ๊ฐ€์ ธ์˜ค๊ธฐ

์œ„ ๋ฉ”์„œ๋“œ๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ ์งœ์™€ ์‹œ๊ฐ„์˜ ๊ฐ ์š”์†Œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. getMonth()๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ, 9์›”์„ ์˜๋ฏธํ•˜๋Š” ๊ฐ’์€ 8์ž…๋‹ˆ๋‹ค.

2. ์‹œ๊ฐ„ ์„ค์ •ํ•˜๊ธฐ

๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด Date ๊ฐ์ฒด์˜ ์‹œ๊ฐ„์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const now = new Date();

now.setFullYear(2025);  // ์—ฐ๋„๋ฅผ 2025๋…„์œผ๋กœ ๋ณ€๊ฒฝ
now.setMonth(5);        // ์›”์„ 6์›”๋กœ ๋ณ€๊ฒฝ (0๋ถ€ํ„ฐ ์‹œ์ž‘)
now.setDate(15);        // ์ผ์„ 15์ผ๋กœ ๋ณ€๊ฒฝ

console.log(now);  // ๊ฒฐ๊ณผ: Sun Jun 15 2025

์œ„ ์˜ˆ์ œ์—์„œ๋Š” setFullYear(), setMonth(), setDate() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด Date ๊ฐ์ฒด์˜ ๋‚ ์งœ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ ์งœ ๊ฐ„๊ฒฉ ๊ณ„์‚ฐํ•˜๊ธฐ

JavaScript์˜ Date ๊ฐ์ฒด๋Š” ๋‘ ๋‚ ์งœ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•ด ํŠน์ • ๊ธฐ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ์ง€๋‚ฌ๋Š”์ง€ ๋˜๋Š” ์•ž์œผ๋กœ ์–ผ๋งˆ๋‚˜ ๋‚จ์•˜๋Š”์ง€ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const startDate = new Date('2024-01-01');
const endDate = new Date('2024-12-31');

const diffTime = endDate - startDate;  // ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„ ์ฐจ์ด
const diffDays = diffTime / (1000 * 60 * 60 * 24);  // ์ผ ๋‹จ์œ„๋กœ ๋ณ€ํ™˜

console.log(diffDays);  // ๊ฒฐ๊ณผ: 365

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ๋‘ ๋‚ ์งœ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ผ ์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ€๋ฆฌ์ดˆ๋ฅผ ์ดˆ, ๋ถ„, ์‹œ๊ฐ„, ์ผ ๋‹จ์œ„๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‰ฝ๊ฒŒ ๋‚ ์งœ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ ์งœ ํ˜•์‹ ์ง€์ •ํ•˜๊ธฐ

Date ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ๋‚ ์งœ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ toLocaleDateString()์™€ toLocaleTimeString() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๋กœ์ผ€์ผ์— ๋งž๋Š” ํ˜•์‹์œผ๋กœ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const now = new Date();

// ๋กœ์ผ€์ผ์— ๋งž๋Š” ๋‚ ์งœ ์ถœ๋ ฅ
console.log(now.toLocaleDateString('en-US'));  // ๊ฒฐ๊ณผ: 9/12/2024
console.log(now.toLocaleDateString('ko-KR'));  // ๊ฒฐ๊ณผ: 2024. 9. 12.

// ๋กœ์ผ€์ผ์— ๋งž๋Š” ์‹œ๊ฐ„ ์ถœ๋ ฅ
console.log(now.toLocaleTimeString('en-US'));  // ๊ฒฐ๊ณผ: 12:34:56 PM
console.log(now.toLocaleTimeString('ko-KR'));  // ๊ฒฐ๊ณผ: ์˜คํ›„ 12:34:56

์œ„ ์˜ˆ์ œ์—์„œ๋Š” toLocaleDateString()์™€ toLocaleTimeString() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๊ฐ ๋กœ์ผ€์ผ์— ๋งž๊ฒŒ ์ถœ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. en-US๋Š” ๋ฏธ๊ตญ ํ˜•์‹, ko-KR์€ ํ•œ๊ตญ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

UTC ์‹œ๊ฐ„ ์‚ฌ์šฉํ•˜๊ธฐ

JavaScript์˜ Date ๊ฐ์ฒด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ ์‹œ๊ฐ„๋Œ€๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, UTC(ํ˜‘์ • ์„ธ๊ณ„์‹œ)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃฐ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด getUTCFullYear(), getUTCHours() ๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const now = new Date();

console.log(now.getUTCFullYear());  // UTC ๊ธฐ์ค€ ์—ฐ๋„
console.log(now.getUTCHours());     // UTC ๊ธฐ์ค€ ์‹œ

์œ„ ๋ฉ”์„œ๋“œ๋“ค์€ UTC ๊ธฐ์ค€์œผ๋กœ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. UTC ์‹œ๊ฐ„์€ ์ „ ์„ธ๊ณ„์—์„œ ๋™์ผํ•œ ์‹œ๊ฐ„๋Œ€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‹œ๊ฐ„๋Œ€ ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ์‹œ์Šคํ…œ ๊ฐ„ ์‹œ๊ฐ„ ๋™๊ธฐํ™”์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํƒ€์ž„์Šคํƒฌํ”„ ๋‹ค๋ฃจ๊ธฐ

Date ๊ฐ์ฒด๋Š” 1970๋…„ 1์›” 1์ผ ์ž์ •(UTC)์„ ๊ธฐ์ค€์œผ๋กœ ๊ฒฝ๊ณผํ•œ ์‹œ๊ฐ„์„ ํƒ€์ž„์Šคํƒฌํ”„(๋ฐ€๋ฆฌ์ดˆ)๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. getTime() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ์‹œ๊ฐ„์„ ํƒ€์ž„์Šคํƒฌํ”„๋กœ ๋ฐ˜ํ™˜๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const now = new Date();
const timestamp = now.getTime();
console.log(timestamp);  // ๊ฒฐ๊ณผ: 1694568896789 (์˜ˆ์‹œ ๊ฐ’)

ํƒ€์ž„์Šคํƒฌํ”„๋Š” ์ˆซ์ž ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‘ ๋‚ ์งœ ๊ฐ„์˜ ์—ฐ์‚ฐ์„ ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ์ง€์—ฐ ์ž‘์—…์„ ํ•˜๊ฑฐ๋‚˜ ๋‘ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ๊ณ„์‚ฐํ•  ๋•Œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

JavaScript์˜ Date ๊ฐ์ฒด๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์‹œ๊ฐ„ ๊ฐ€์ ธ์˜ค๊ธฐ, ํŠน์ • ๋‚ ์งœ ์„ค์ •, ๋‚ ์งœ ๊ฐ„๊ฒฉ ๊ณ„์‚ฐ, ๋กœ์ปฌ ์‹œ๊ฐ„ ์ถœ๋ ฅ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ Date ๊ฐ์ฒด๋ฅผ ์ ์ ˆํžˆ ํ™œ์šฉํ•˜๋ฉด ๋‚ ์งœ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์ •ํ™•ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—์„œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃฐ ๋•Œ Date ๊ฐ์ฒด์˜ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋” ๋‚˜์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”!

๋Œ“๊ธ€ ์“ฐ๊ธฐ