Calendar
๋ ์ง์ ์๊ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ๋ง ํ ํ ํด๋์ค๋ก ๋ , ์, ์ผ, ์์ผ, ์, ๋ถ ์ด๊น์ง์ ์๊ฐ๊ณผ ๋ ์ง์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ๊ณต
Calender๋ ์ถ์ ํด๋์ค์ด๋ฏ๋ก ์ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ค์ ์ ์ธ ๋ฉ์๋ ๊ตฌํ์ Calendar ํด๋์ค์ ์๋ธ ํด๋์ค์ธ GregorianCalendar ํด๋์ค์ ์ ์๋์ด ์์
package ch07.unit05;
import java.util.Calendar;
public class Ex01 {
public static void main(String[] args) {
// ์์คํ
๋ ์ง๋ฅผ ์ด์ฉํ์ฌ Calendar ๊ฐ์ฒด ์์ฑ
Calendar cal = Calendar.getInstance();
// %tF : ๋
- ์ ์ผ %tA :์์ผ %tT:์๊ฐ
//String s = String.format("tF %tA %tT",cal,cal,cal);
String s = String.format("%1$tF %1$tA %1$tT",cal);
System.out.println(s);
System.out.println("๋
๋:"+cal.get(Calendar.YEAR));
System.out.println("์:"+(cal.get(Calendar.MONTH)+1));
// int n = cal.get(Calender.MONTH)
// Calendar.Month : 0~11
System.out.println("์ผ:"+cal.get(Calendar.DATE));
System.out.println("์ผ:"+cal.get(Calendar.DAY_OF_MONTH));
System.out.println("์ผ:"+cal.get(Calendar.DAY_OF_WEEK));
System.out.println("ํ์ฌ์์ผ์ด ์ด๋ฌ์ ๋ช๋ฒ์งธ ์์ผ?:" + cal.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("์ฌํด์ ํ์ฌ ์ฃผ์ฐจ : " + cal.get(Calendar.WEEK_OF_YEAR));
System.out.println("์ด๋ฌ์ ํ์ฌ ์ฃผ์ฐจ : " + cal.get(Calendar.WEEK_OF_MONTH));
System.out.println("์ค์ /์คํ:" + cal.get(Calendar.AM_PM));
// ์ค์ ์ด๋ฉด 1 , ์คํ๋ฉด 0 ๋์ด
System.out.println("์๊ฐ(0~11): " + cal.get(Calendar.HOUR));
System.out.println("์๊ฐ(0~23): " + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("๋ถ:" + cal.get(Calendar.MINUTE));
System.out.println("์ด:" + cal.get(Calendar.SECOND));
System.out.println("1000๋ถ์ 1์ด(ms)" + cal.get(Calendar.MILLISECOND));
System.out.println("์ด๋ฌ์ ๋ง์ง๋ง ๋ ์ง๋ : "+ cal.getActualMaximum(Calendar.DATE));
// 2024๋
5์ 5์ผ๋ก ๋ ์ง ๋ณ๊ฒฝ
cal.set(2024,5-1,5);
System.out.printf("%tF %tA\n",cal,cal);
// 2024.1.15์ผ์ ๋ง๋ฌ๋ค 100์ผํ๋
cal.set(2024,1-1,15);
cal.add(Calendar.DATE, 100);
System.out.printf("%tF %tA\n",cal,cal);
// 1970.1.1 0:0:0 ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ฆฌํ ๋จ์๋ก ํ์ฐํ์ฌ ๋ฐํ
Calendar cal2 = Calendar.getInstance();
long t = cal2.getTimeInMillis();
System.out.println(t);
}
}
package ch07.unit05;
import java.util.Calendar;
public class Ex02 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
// 2024-05-05
cal.set(2024,5-1,8);
System.out.printf("%tT\n",cal);
//์์ผ์ ์ผ์์ผ๋ก ๋ณ๊ฒฝ
cal.set(Calendar.DAY_OF_WEEK, 1); // ์์ผ์ ์ผ์์ผ๋ก ๋ฐ๊ฟ~
System.out.printf("%tF\n",cal); // ์์คํ
์ ์๋ ๋ ์ง 28์ผ๋ก ์ธ์ํด์
/*
-์์ผ์ ์์ฑ๋ Calendar์ ์ด๊ธฐ ๋ ์ง์ ์ผ์์ผ๋ก ๋ณ๊ฒฝ
(ํ์ฌ ์์คํ
๋ ์ง๊ฐ ์๋ ์ฃผ์ ์ผ์์ผ)
- get() ๋ฉ์๋๋ฅผ ํธ์ถํ์ง ์์ผ๋ฉด ์๊ฐ์ด ๋ณ๊ฒฝ๋์ง ์๋๋ค.
- set() ๋ฉ์๋๋ Calendar์ ํ๋๊ฐ์ ๋ณ๊ฒฝ ๋์ง๋ง ์ค์ ๋ ์ง๋
๋ณ๊ฒฝ๋์ง ์๋๋ค.
๋ฐ๋ผ์, set()์ ์ด์ฉํ์ฌ ๋ ์ง๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ
get(),getTime(),getTimeMillns() ๋ฑ์ ๋ฉ์๋๋ฅผ
ํธ์ถํ์ฌ ๋ ์ง๊ฐ ๋ณ๊ฒฝ๋๋ค.
set()์ ์ฌ๋ฌ๋ฒ ํธ์ถํด๋ ์ฌ๋ฌ๋ฒ์ ๋ถํ์ํ ๊ณ์ฐ์ ํธ๋ฆฌ๊ฑฐํ์ง ์๋๋ค.
*/
System.out.println("-----------------");
cal2.set(2024,5-1,8);
System.out.printf("%tT\n",cal);
cal2.getTime();
cal2.set(Calendar.DAY_OF_WEEK, 1);
System.out.printf("%tF\n",cal2);
}
}
package ch07.unit05;
import java.util.Calendar;
public class Ex04 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(2024, 7-1,30);
cal.getTime(); //set() ๋ฉ์๋ ์คํ ํ get()๋ฅผ ํธ์ถํด์ผ ์ค์ ์ค์ ๋ ์ง ๋ณ๊ฒฝ
//Calendar cal2 = Calendar.getInstance();
//์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ๊ฐ์ ๋ณต์ฌ
//Calendar cal2 = (Calendar)cal.clone();
//System.out.printf("%tF %tF\n",cal,cal2); ๊ฐ์ ๋ ์ง ์ถ๋ ฅ
//System.out.println(cal==cal2); // false
//์ฃผ์ ์์
Calendar sday = (Calendar)cal.clone();
sday.set(Calendar.DAY_OF_WEEK, 1);
System.out.printf("์ฃผ์์: %tF\n", sday);
//์ฃผ์ ๋ง์ง๋ง (ํ ์์ผ)
Calendar eday = (Calendar)cal.clone();
eday.set(Calendar.DAY_OF_WEEK, 7);
System.out.printf("์ฃผ์์: %tF\n", eday);
}
}
Date
๋ ์ง๋ฅผ ํํํ๋ ํด๋์ค๋ก ๊ฐ์ฒด๊ฐ์ ๋ ์ง์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์๋ ์ฌ์ฉ, ์ฌ๋ฌ ๊ฐ์ ์์ฑ์๊ฐ ์ ์ธ๋์ด ์์ง๋ง ๋๋ถ๋ถ Deprecated(๋น ๊ถ์ฅ) ๋์ด ํ์ฌ๋ Date() ์์ฑ์๋ง ์ฃผ๋ก ์ฌ์ฉํ๋ค. Date() ์์ฑ์๋ ์ปดํจํฐ์ ํ์ฌ ๋ ์ง๋ฅผ ์ฝ์ด Date๊ฐ์ฒด๋ก ๋ง๋ ๋ค. Date now = new Date()
package ch07.unit05;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Ex11_Date {
public static void main(String[] args) {
// ํ์ฌ ์์คํ
์๊ฐ์ ๊ธฐ์ค์ผ๋ก date ๊ฐ์ฒด ์์ฑ
Date date = new Date();
System.out.println(date);
// 1970.1.1 0:0:0๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ฆฌํ ๋จ์๋ก ํ์ฐํ์ฌ ๋ฐํ
long t = date.getTime();
System.out.println(t); // 1709101885941
Date date2 = new Date(1709101885941L);
// date ๊ฐ date2 ๋ณด๋ค ์ดํ ๋ ์ง ์ธ์ง ํ์ธ
System.out.println(date.after(date2));
// SimpleDateFormat; Date => String ; Date <= String
// Date => String
SimpleDateFormat sdf = new SimpleDateFormat("yyyy๋
MM์ dd์ผ HH:mm:ss");
String s = sdf.format(date);
System.out.println(s);
// String > Date
s = "2024-05-06";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
try {
// ์์ธ๋ฅผ ๋ดํฌํ๊ณ ์๋ ์ฝ๋
Date date3 = sdf2.parse(s);
s = sdf.format(date3);
System.out.println(s);
} catch (ParseException e) { // <ํ์ฑ์์ธ
// ์์ธ๊ฐ ๋ฐ์ํ ๋ ์คํํ ์ฝ๋
e.printStackTrace();
}
}
}
package ch07.unit05;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Ex12 {
public static void main(String[] args) {
// ์๋
์์ผ๋ถํฐ ์ค๋ ๊น์ง์ ๋ ์ ๊ณ์ฐ
Date date = new Date();; // ์์คํ
์ค๋ ๋ ์ง
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
String s ="1911-01-01";
Date date2 = sdf.parse(s);
// ๋ ๋ ์ง ์ฌ์ด์ ๊ฐ๊ฒฉ
long diff = (date.getTime() - date2.getTime())/(1000*60*60*24);
System.out.println("์ด์์จ๋ ์ :"+diff);
} catch (Exception e) {
// TODO: handle exception
}
}
}
package ch07.unit05;
import java.util.Calendar;
import java.util.Date;
public class Ex13 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.printf("%tF\n",cal);
// Calendar > java.util.Date๋ก ๋ณํ
Date date = cal.getTime();
System.out.println(date);
/*
* jdk 9๋ถํฐ๋ java.sql.Date๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์์ ๋ชจ๋์
* ํฌํจํด์ผ ํ๋ค. (module-info.java ํ์ผ)
* requires java.se;
*
*/
// java.util.Date > java.sql.Date๋ก ๋ณํ
// java.sql.Date : DB์ ๋ ์ง๋ฅผ ์ ์ฅํ๊ฑฐ๋ DB์ ์ ์ฅ๋ ๋ ์ง ์ถ์ถ
java.sql.Date date2 = new java.sql.Date(date.getTime());
System.out.println(date2);
//java.util.Date > Calendar๋ก ๋ณํ
cal.setTime(date);
System.out.printf("%tF\n",cal);
}
}
Math
ํด๋์ค๋ ์ํ(Mathematics)๊ณผ ๊ด๋ จ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ ํด๋์ค๋ก ์์ฑ์๊ฐ ์์ง๋ง private ์ผ๋ก ์ ์ธ๋์ด ์ธ๋ถ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค. ๋ชจ๋ ๋ฉ์๋๊ฐ staic์ผ๋ก ์ ์ธ๋์ด ์์ผ๋ฏ๋ก ๊ฐ์ฒด๋ฅผ ์ ์ธํ์ง ์๊ณ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
Random
์ฌ๋ฌ ํํ์ ๋์๋ฅผ ์ ๊ณตํ๋ ํด๋์ค. Math ํด๋์ค์ ์ ์ ๋ฉ์๋์ธ random()๋ ๋์๋ฅผ ์ ๊ณตํ๋ ๋ฉ์๋ ์ด์ง๋ง 0..~1.0์ฌ์ด์ ์ค์๋ง ๋ฐ์ํ๋ฏ๋ก ํ์ํ ์ฌ๋ฌ ํํ์ ๋์๋ฅผ ๋ง๋ค๋ ค๋ฉด ์ฐ์ฐ์ ํ์๋ก ํ๋ค. ๊ทธ๋์ ์๋ฐ๋ ์ฌ๋ฌ ํํ์ ๋์๋ฅผ ๋ฐ์์์ผ์ฃผ๋ Random ํด๋์ค๋ฅผ ์ ๊ณตํ๋ค.
Formatter
ํ์ ๋ฌธ์์ด์ ์ ๊ณตํ๊ณ ์ด ๋ฌธ์์ด์์ ์ง์ ํ ๋๋ก ๋ฐ์ดํฐ๊ฐ ํ์ํ ๋๋ค. format() ๋ฉ์๋์ ํ์ ๋ฌธ์์ด์ธ format๋ฌธ์์ด์ ์ถ๋ ฅํ๊ณ ์ถ์ ๋ฌธ์์ด ํํ๋ก ์ง์ ํ๊ณ ๊ทธ ์ค๊ฐ์ %๋ก ์์ํ๋ ํ์ํ ์ธ์๋ฅผ ์ง์ ํ๋ค. ์ด ํ์ํ ์ธ์๋ ๋ช ๊ฐ๋ฅผ ๋ฃ์ด๋ ์๊ด์์ง๋ง, ๋ ๋ฒ์งธ ์ธ์์ธ ๋น์ ํ ์ธ์์์ ํ์ํ ์ธ์์ ์๋งํผ์ ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค.
DateFormat
๊ตญ๊ฐ๋ณ ์ค์ ๊ณผ ์๊ด์์ด ๋ ์ง ๋๋ ์๊ฐ์ ํ์ํ(๋ ์ง → ํ ์คํธ)ํ๊ฑฐ๋ ๊ตฌ๋ฌธ ๋ถ์(ํ ์คํธ →๋ ์ง)์ ์ํ abstract ํด๋์ค์ด๋ค. ๋ ์ง๋ Date ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ 1970๋ 1์ 1์ผ 00:00:00 GMT ์ดํ ๋ฐ๋ฆฌ ์ด๋ก ํ์๋๋ค. DateFormat์ ์ถ์ํด๋์ค์ด๋ฏ๋ก ํ์ฌ ๋ก์ผ์ผ์ ๋ ์ง๋ฅผ ํ์ํํ๋ ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ ์ ์ (static)ํฉํ ๋ฆฌ ๋ฉ์๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ค.
SimpleDateFormat
DateFormat ํด๋์๋ฅผ ์์๋ฐ์ ๊ตฌํํ ํด๋์ค๋ก Date ๊ฐ์ฒด๋ฅผ ํ ์คํธ๋ก ๋ณํ ํ๊ฑฐ๋ ํ ์คํธ๋ฅผ Date ๊ฐ์ฒด๋ก ๋ณํ์ํฌ ๋ ์ฌ์ฉํ๋ ํด๋์ค
'๐ป > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] 12์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค 6 (0) | 2024.03.02 |
---|---|
[Java] 12์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค 5 (0) | 2024.03.02 |
[Java] 11์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค - String 2 (0) | 2024.02.29 |
[Java] 10์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค - String (1) | 2024.02.27 |
[Java] 10์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค (0) | 2024.02.27 |