반응형
안녕하세요
이번 포스팅에서는 날짜형식을 원하는 형식으로 출력하는 방법과 문자열 - 날짜로 변환하는 방법을 알아보겠습니다.
아래의 예제 소스를 보면서 확인해보겠습니다.
0. import 하기
예제의 자료형을 사용하기 위해 아래의 소스처럼 import를 해줘야합니다.
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
1. 오늘 날짜 구하기
Date today = new Date();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy년 MM월 dd일 hh시 mm분 ss초");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat format3 = new SimpleDateFormat("오늘 날짜 : yyyy년도 MM월, 현재 시각 : hh시 mm분");
String strFormat1 = format1.format(today);
String strFormat2 = format2.format(today);
String strFormat3 = format3.format(today);
System.out.println("날짜 형식 지정 안 한 경우 : " + today);
System.out.println("strFormat1형식 : " + strFormat1);
System.out.println("strFormat2형식 : " + strFormat2);
System.out.println("strFormat3형식 : " + strFormat3);
오늘 날짜 정보를 가지고 있는 today변수를 SimpleDateFormat을 이용해 날짜 형식을 자유자재로 출력한 소스입니다.
2. String 자료형에서 날짜 형식으로 변환하기
String todayStr = "20210323";
String tomorrowStr = "2021년도 03월 24일 21시 30분 35초";
SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy년도 MM월 dd일 hh시 mm분 ss초");
Date todayDate = format1.parse(todayStr);
Date tomorrowDate = format2.parse(tomorrowStr);
System.out.print(todayDate);
System.out.println();
System.out.print(tomorrowDate);
String 자료형에서 Date 자료형으로 변환할 때도 SimpleDateFormat을 이용해서 변환이 가능합니다.
3. 날짜 계산하기
String tomorrowStr = "2021년도 03월 24일 21시 30분 35초";
SimpleDateFormat format = new SimpleDateFormat("yyyy년도 MM월 dd일 hh시 mm분 ss초");
Date tomorrowDate = format.parse(tomorrowStr);
Calendar cal = Calendar.getInstance();
cal.setTime(tomorrowDate);
System.out.println("날짜 변경 전 : "+ cal.getTime());
cal.add(Calendar.YEAR, 2); // 연도 수정
cal.add(Calendar.MONTH, 2); // 월 수정
cal.add(Calendar.DATE, 2); // 날짜 수정
cal.add(Calendar.HOUR_OF_DAY , 2); // 시 수정
cal.add(Calendar.MINUTE, 2); // 분 수정
cal.add(Calendar.SECOND, 2); // 초 수정
System.out.println("날짜 변경 후 : "+ cal.getTime());
위 3번 예제처럼 calendar 자료형을 이용해 날짜를 수정할 수 있습니다.
날짜를 빼려면 음수를 사용하면 됩니다.
4. 두 날짜의 차이 구하기
String todayStr = "20210323";
String tomorrowStr = "2021년도 03월 24일 21시 30분 35초";
SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy년도 MM월 dd일 hh시 mm분 ss초");
Date todayDate = format1.parse(todayStr);
Date tomorrowDate = format2.parse(tomorrowStr);
long dateGap = tomorrowDate.getTime() - todayDate.getTime();
long dateGapDay = dateGap / ( 24*60*60*1000);
dateGapDay = Math.abs(dateGapDay); //Math.abs는 인자값을 절대값으로 반환하는 함수(음수 양수 상관없이 양수로 반환)
System.out.println("두 날짜의 날짜 차이: "+dateGapDay);
반응형
'BE > Java' 카테고리의 다른 글
[Java] 디컴파일해주는 jd-gui (0) | 2021.10.15 |
---|---|
[cron 표현식] / 사용 시 유의 점 (0) | 2021.07.08 |
[JAVA] BigDecimal 자료형 사용방법 (0) | 2021.03.16 |
[JAVA] EOF(End of File) 처리 방법 (0) | 2021.02.23 |
[Java] BufferedReader, BufferedWriter (0) | 2021.02.21 |