CodeGym /ํ–‰๋™ /All lectures for KO purposes /DateTime API๋กœ ์ž‘์—…ํ•  ๋•Œ ์•Œ์•„์•ผ ํ•  ์œ ์šฉํ•œ ๋‰˜์•™์Šค

DateTime API๋กœ ์ž‘์—…ํ•  ๋•Œ ์•Œ์•„์•ผ ํ•  ์œ ์šฉํ•œ ๋‰˜์•™์Šค

All lectures for KO purposes
๋ ˆ๋ฒจ 1 , ๋ ˆ์Šจ 1147
์‚ฌ์šฉ ๊ฐ€๋Šฅ

1. LocalDateTimeํด๋ž˜์Šค

์ด ํด๋ž˜์Šค๋Š” ๋ฐ ํด๋ž˜์Šค LocalDateTime์˜ ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋ชจ๋‘ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ฒด๋„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋ฉ”์„œ๋“œ๋Š” ๋ฐ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.LocalDateLocalTimeLocalDateLocalTime

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

๋ชจ๋“  ๊ฒƒ์ด ์—ฌ๊ธฐ์—์„œ ์˜ˆ์ƒํ•œ ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด now()๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ:

์•”ํ˜ธ ์ฝ˜์†” ์ถœ๋ ฅ
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

ํ™”๋ฉด์— ํ‘œ์‹œ๋  ๋•Œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์€ ๋ฌธ์ž ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค T.

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

LocalDate๋‹น์—ฐํžˆ ๋ชจ๋“  ๊ฒƒ์ด ๋ฐ ํด๋ž˜์Šค ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค LocalTime. ๋‹ค์Œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค of().

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

๋จผ์ € ํด๋ž˜์Šค์™€ ๋™์ผํ•œ ํ˜•์‹์œผ๋กœ ๋‚ ์งœ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค LocalDate. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํด๋ž˜์Šค์—์„œ์™€ ๋™์ผํ•œ ํ˜•์‹์œผ๋กœ ์‹œ๊ฐ„์„ ์ง€์ •ํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค LocalTime. ๋ฐฉ๋ฒ• ์˜ ๋ชจ๋“  ๋ณ€ํ˜• ๋ชฉ๋ก์€ of()๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ–‰๋™ ์–‘์‹
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

๋‚ ์งœ๋ฅผ ์ง์ ‘ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ LocalDate์žˆ์Šต๋‹ˆ๋‹ค LocalTime.

์•”ํ˜ธ
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
์ฝ˜์†” ์ถœ๋ ฅ
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

์ด LocalDateTimeํด๋ž˜์Šค์—๋Š” ๋‚ ์งœ ๋ฐ/๋˜๋Š” ์‹œ๊ฐ„ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. LocalDate๊ทธ๋“ค์€ ๋ฐ ํด๋ž˜์Šค ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ •ํ™•ํžˆ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค LocalTime. ์—ฌ๊ธฐ์„œ๋Š” ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.



2. Instantํด๋ž˜์Šค

Java ์ œ์ž‘์ž๋„ ๊ตฌ์‹ ๋ฐฉ์‹์„ ์žŠ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Date Time API์—๋Š” ์ปดํ“จํ„ฐ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•œ ์‹œ๊ฐ„ ์ž‘์—…์„ ์œ„ํ•œ Instant ํด๋ž˜์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ, ๋ถ„, ์ดˆ ๋Œ€์‹  ์ดˆ, ๋ฐ€๋ฆฌ์ดˆ, ๋‚˜๋…ธ์ดˆ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค .

์ด ํด๋ž˜์Šค์—๋Š” ๋‹ค์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ๊ฐœ์˜ ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • 1970๋…„ 1์›” 1์ผ ์ดํ›„ ๊ฒฝ๊ณผ๋œ ์ดˆ ์ˆ˜
  • ๋‚˜๋…ธ์ดˆ์˜ ์ˆ˜

์ด ์ˆ˜์—…์€ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‚˜์š”? ์˜ˆ. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— 1970๋…„ ์ดˆ์— ์‹œ์ž‘ํ•˜๋Š” Unix-time์œผ๋กœ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

ํด๋ž˜์Šค๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ๋งŒ ์œ ์ง€ํ•˜๋Š” ํด๋ž˜์Šค Instant์˜ ๋‹จ์ˆœํ™”๋œ ๋ฒ„์ „ ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค .Date

Instant๊ฐ์ฒด์™€ ๋˜‘๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค LocalTime.

Instant timestamp = Instant.now();

์—ฌ๊ธฐ์„œ timestamp๋Š” Instant๋ณ€์ˆ˜์ด๊ณ  ํด๋ž˜์Šค ์˜ ์ •์  ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ž…๋‹ˆ๋‹ค .Instant.now()now()Instant

์˜ˆ:

์•”ํ˜ธ ์ฝ˜์†” ์ถœ๋ ฅ
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

of()1970๋…„ 1์›” 1์ผ ์ดํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„์„ ์ „๋‹ฌํ•˜์—ฌ ๋ฉ”์„œ๋“œ ์˜ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค .

ofEpochMilli(long milliseconds)
๋ฐ€๋ฆฌ ์ดˆ ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
ofEpochSecond(long seconds)
์ดˆ ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ofEpochSecond(long seconds, long nanos)
์ดˆ์™€ ๋‚˜๋…ธ์ดˆ๋ฅผ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Instant๊ฐœ์ฒด ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ

Instant ํด๋ž˜์Šค์—๋Š” ํ•ด๋‹น ํ•„๋“œ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

long getEpochSecond()
1970๋…„ 1์›” 1์ผ ์ดํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)
int getNano()
๋‚˜๋…ธ์ดˆ.
long toEpochMilli()
1970๋…„ 1์›” 1์ผ ์ดํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)

Instant๊ธฐ์กด ๊ฐœ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค .

Instant plusSeconds(long)
ํ˜„์žฌ ์‹œ๊ฐ„์— ์ดˆ๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค.
Instant plusMillis(long)
๋ฐ€๋ฆฌ์ดˆ ์ถ”๊ฐ€
Instant plusNanos(long)
๋‚˜๋…ธ์ดˆ ์ถ”๊ฐ€
Instant minusSeconds(long)
์ดˆ ๋นผ๊ธฐ
Instant minusMillis(long)
๋ฐ€๋ฆฌ์ดˆ ๋นผ๊ธฐ
Instant minusNanos(long)
๋‚˜๋…ธ์ดˆ๋ฅผ ๋บ๋‹ˆ๋‹ค

์˜ˆ:

์•”ํ˜ธ ์ฝ˜์†” ์ถœ๋ ฅ
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION