SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
String str = format.format(new Date());
System.out.println(str);
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
String str = "2016/12/25 23:12:53.234";
Date dt = format.parse(str);
System.out.println(dt);
String str = "2016-12-25";
java.sql.Date dt = java.sql.Date.valueOf(str);
System.out.println(dt);
예를 들어 2016년 12월 33일은 존재하지 않는다. 포메터에 Lenient(허술한) 를 false를 설정하면 에러, true를 설정하면 2017년 1월2일로 에러가 발생하지 않는다.
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy/MM/dd");
String str = "2016/12/33";
try {
formatDate.setLenient(false);
Date dt = formatDate.parse(str);
System.out.println("날짜형식이 맞음 : " + dt);
} catch (Exception e) {
e.printStackTrace();
System.out.println("맞지않는 날짜형식 이다.");
}
기호 | 의미 | 사용예 |
---|---|---|
y | 년도 | yy(18), yyyy(2018) |
M | 월 (1~12월) | M(7), MM(07), MMM(7월) |
d | 일 (1~31일) | d(3), dd(03), ddd(003), dddd(0001) |
H | 시간 (0~23시) | H(7), HH(07), HHH(007), HHHH(0007) |
m | 분 (0~59분) | m(7), mm(07), mmm(007), mmmm(0007) |
s | 초 (0~59초) | s(7), ss(07), sss(007), ssss(0007) |
S | 미리초 (0~999ms) | S(7), SSS(007) |
D | 년의 일 (1~365일) | D(3), DD(03), DDD(003), DDDD(0003) 여기는 365일기준 |
h | 시간 (1~12시간) | h(7), hh(07), hhh(007), hhhh(0007) AM/PM구분 12시간제 |
k | 시간 (1~24시간) | k(7), kk(07), kkk(007), kkkk(0007) |
K | 시간 ( 0~11시간) | K(7), KK(07), KKK(007), KKKK(0007) |
w | 년의 주간 (1~53주) | w(7), ww(07), www(007), wwww(0007) |
W | 월의 주간 (1~5주) | W(1), WW(01), WWW(001), WWWW(0001) |
E | 요일 | E (화) |
F | 월의 몇째 요일 (1~5) | 1,2... |
a | 오전/오휴 (AM/PM) | 12:00기준 오전 오후 |
z | Time Zone | Pacific Standard Time, PST, GMT-08:00 |
Z | Time Zone(RFC822) | -0800 |
G | 기원 | AD(G) |
String dt = "2030/12/24 11:21:30";
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, Integer.parseInt(dt.substring(0,4)));
cal.set(Calendar.MONTH,Integer.parseInt(dt.substring(5,7))-1);
cal.set(Calendar.DATE, Integer.parseInt(dt.substring(8,10)));
cal.set(Calendar.HOUR, Integer.parseInt(dt.substring(11,13)));
cal.set(Calendar.MINUTE, Integer.parseInt(dt.substring(14,16)));
cal.set(Calendar.SECOND, Integer.parseInt(dt.substring(17,19)));
Date dt = cal.getTime();
System.out.println(cal.getTime()); >>> Tue Dec 24 11:21:30 KST 2030
System.out.println(cal.getTime().getTime()); >>>> 1924309290495
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int date = cal.get(Calendar.DATE);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
String yoil = "";
switch (dayOfWeek) {
case 1:
yoil = "일";
break;
case 2:
yoil = "월";
break;
case 3:
yoil = "화";
break;
case 4:
yoil = "수";
break;
case 5:
yoil = "목";
break;
case 6:
yoil = "금";
break;
case 7:
yoil = "토";
break;
}
System.out.println(year+"/"+month+"/"+date+"("+yoil+") "+hour+":"+minute+":"+second);