반응형
1. 설명
안녕하세요 코이킹입니다.
이 포스트에서 다룰 예제는 "yyyy-MM-dd · yyyy-mm-dd HH:mm:ss와 같은 날짜 시간 포맷의 문자열 데이터를 Date객체 또는 long타입의 Timestamp로 변환하고",
그 반대로 "Date객체 또는 Timestamp데이터를 날짜 시간 포맷의 문자열 데이터로 변환" 해주는 코드입니다.
2. 소스코드
- 메서드
// (1) 날짜시간 데이터를 지정한 포맷의 문자열로 리턴
/**
* 현재 시간을 지정한 날짜시간 포맷의 문자열로 리턴하기
*/
public String getNowStr(String format) {
if (format==null || format.equals("")) return null;
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date);
}
/**
* 지정한 시간을 지정한 날짜시간 포맷의 문자열로 리턴하기
*/
public String getDateStr(Date date, String format) {
if ((date==null || date.equals(""))
|| (format==null || format.equals(""))) return null;
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date);
}
/**
* 지정한 타임스탬프를 지정한 날짜시간 포맷의 문자열로 리턴하기
*/
public String getDateStr(long timeStamp, String format) {
if (format==null || format.equals("")) return null;
Date date = new Date(timeStamp);
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date);
}
// (2) 날짜시간 포맷의 문자열을 날짜시간 데이터 타입으로 리턴
/**
* 날짜시간 포맷의 문자열을 Date로 리턴
* @throws ParseException
*/
public Date getDate(String dateStr, String format) throws ParseException {
if ((dateStr==null || dateStr.equals(""))
|| (format==null || format.equals(""))) return null;
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.parse(dateStr);
}
/**
* 날짜시간 포맷의 문자열을 타임스탬프로 리턴
*/
public Long getTimeStamp(String dateStr, String format) {
if ((dateStr==null || dateStr.equals(""))
|| (format==null || format.equals(""))) return null;
return Timestamp.valueOf(dateStr).getTime();
}
- 메인
public class Data_05_Date {
public static void main(String[] args) {
try {
for (String str : args ) {
System.out.println("Param : "+str);
}
String testStr1 = "20191203";
String testStr2 = "2021-10-17 13:23:35";
String testStr3 = "1631929893268";
DateUtil du = DateUtil.getInstance();
System.out.println("---------- (1) 현재시간을 지정한 날짜시간 포맷의 문자열로 변환 ---------- ");
System.out.println(du.getNowStr(DateUtil.FORMAT_3));
System.out.println(du.getNowStr(DateUtil.FORMAT_7));
System.out.println();
System.out.println("---------- (2) 날짜시간 데이터를 날짜시간 포맷의 문자열로 변환 ---------- ");
System.out.println(testStr1 + " -> "+ du.getDateStr(du.getDate(testStr1, DateUtil.FORMAT_1), DateUtil.FORMAT_3));
System.out.println(testStr2 + " -> "+ du.getDateStr(du.getDate(testStr2, DateUtil.FORMAT_1), DateUtil.FORMAT_7));
System.out.println();
System.out.println("---------- (3) 타임스탬프를 날짜시간 포맷의 문자열로 변환 ---------- ");
System.out.println(testStr3 + " -> "+ du.getDateStr(Long.parseLong(testStr3), DateUtil.FORMAT_4));
System.out.println(testStr3 + " -> "+ du.getDateStr(Long.parseLong(testStr3), DateUtil.FORMAT_8));
System.out.println();
System.out.println("---------- (4) 날짜시간 포맷의 문자열을 타임스탬프로 변환 ---------- ");
System.out.println(testStr2 + " -> "+ du.getTimeStamp(testStr2, DateUtil.FORMAT_7));
System.out.println(testStr1 + " -> "+ du.getTimeStamp(testStr1, DateUtil.FORMAT_1)); // testStr1는 날짜 데이터만 있으므로 에러발생
System.out.println();
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
3. 실행결과【Windows(이클립스) / Linux】
4. 전체코드
https://github.com/leeyoungseung/template-java
반응형
'프로그래밍 > Java-자주쓰는예제' 카테고리의 다른 글
【Java-DB】DB에 데이터 삽입(MySQL/Oracle) (0) | 2021.10.24 |
---|---|
【Java-DB】데이터베이스 연결확인 (MySQL/Oracle) (0) | 2021.10.17 |
【Java-데이터 통신】Postman 처럼 HTTP 통신하기 - 3.파일 업로드(Multipart/form-data) (0) | 2021.10.01 |
【Java-데이터 통신】Postman 처럼 HTTP 통신하기 - 3.XML데이터 CRUD (0) | 2021.09.26 |
【Java-데이터 통신】Postman 처럼 HTTP 통신하기 - 2.JSON데이터 CRUD (0) | 2021.09.20 |
댓글