Java와 주요 데이터베이스(Oracle, MySQL, PostgreSQL, MSSQL)를 연동할 때 날짜 포맷을 일관되게 유지하는 것이 중요합니다. 각 데이터베이스는 사용하는 날짜 포맷이 다르므로, 이를 일관되게 처리하기 위해 DateUtil
클래스를 작성하여 문자열과 java.util.Date
객체 간의 변환을 쉽게 수행할 수 있습니다.
1. Oracle의 DateUtil 클래스
Oracle에서 자주 사용하는 날짜 포맷은 dd-MMM-yy hh.mm.ss.SSS a
입니다. 이를 바탕으로 Oracle에서 사용할 수 있는 DateUtil
클래스를 작성했습니다.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
private static final String ORACLE_DATE_FORMAT = "dd-MMM-yy hh.mm.ss.SSS a";
public static Date stringToDate(String dateStr) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat(ORACLE_DATE_FORMAT);
return formatter.parse(dateStr);
}
public static String dateToString(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat(ORACLE_DATE_FORMAT);
return formatter.format(date);
}
public static String getCurrentDateTime() {
SimpleDateFormat formatter = new SimpleDateFormat(ORACLE_DATE_FORMAT);
return formatter.format(new Date());
}
}
사용 예시
Date date = DateUtil.stringToDate("04-Nov-24 03.30.45.000 PM");
String dateStr = DateUtil.dateToString(new Date());
String currentDateTime = DateUtil.getCurrentDateTime();
2. MySQL의 DateUtil 클래스
MySQL에서는 ISO 형식인 yyyy-MM-dd HH:mm:ss
날짜 포맷을 주로 사용합니다.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
private static final String MYSQL_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static Date stringToDate(String dateStr) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat(MYSQL_DATE_FORMAT);
return formatter.parse(dateStr);
}
public static String dateToString(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat(MYSQL_DATE_FORMAT);
return formatter.format(date);
}
public static String getCurrentDateTime() {
SimpleDateFormat formatter = new SimpleDateFormat(MYSQL_DATE_FORMAT);
return formatter.format(new Date());
}
}
사용 예시
Date date = DateUtil.stringToDate("2024-11-04 15:30:45");
String dateStr = DateUtil.dateToString(new Date());
String currentDateTime = DateUtil.getCurrentDateTime();
3. PostgreSQL의 DateUtil 클래스
PostgreSQL에서도 MySQL과 동일하게 yyyy-MM-dd HH:mm:ss
포맷을 주로 사용합니다.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
private static final String POSTGRESQL_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static Date stringToDate(String dateStr) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat(POSTGRESQL_DATE_FORMAT);
return formatter.parse(dateStr);
}
public static String dateToString(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat(POSTGRESQL_DATE_FORMAT);
return formatter.format(date);
}
public static String getCurrentDateTime() {
SimpleDateFormat formatter = new SimpleDateFormat(POSTGRESQL_DATE_FORMAT);
return formatter.format(new Date());
}
}
사용 예시
Date date = DateUtil.stringToDate("2024-11-04 15:30:45");
String dateStr = DateUtil.dateToString(new Date());
String currentDateTime = DateUtil.getCurrentDateTime();
4. MSSQL의 DateUtil 클래스
MSSQL에서도 ISO 형식인 yyyy-MM-dd HH:mm:ss
를 사용하므로, 동일한 방식으로 DateUtil
클래스를 구성할 수 있습니다.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
private static final String MSSQL_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static Date stringToDate(String dateStr) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat(MSSQL_DATE_FORMAT);
return formatter.parse(dateStr);
}
public static String dateToString(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat(MSSQL_DATE_FORMAT);
return formatter.format(date);
}
public static String getCurrentDateTime() {
SimpleDateFormat formatter = new SimpleDateFormat(MSSQL_DATE_FORMAT);
return formatter.format(new Date());
}
}
사용 예시
Date date = DateUtil.stringToDate("2024-11-04 15:30:45");
String dateStr = DateUtil.dateToString(new Date());
String currentDateTime = DateUtil.getCurrentDateTime();
결론
Java와 주요 데이터베이스를 함께 사용할 때 날짜 형식을 일관되게 유지하는 것은 매우 중요합니다. DateUtil
클래스를 활용하면 각 데이터베이스에 맞는 날짜 포맷을 쉽게 관리할 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다. Oracle, MySQL, PostgreSQL, MSSQL 각각에 맞춘 DateUtil
클래스를 통해 손쉽게 날짜 변환 작업을 수행해보세요.