Java에서는 SimpleDateFormat 클래스를 사용하여 문자열을 날짜로 변환하고, 날짜를 문자열로 변환할 수 있습니다. 아래는 Java 코드로 KST 문자열을 Date 객체로 변환하고, Date 객체를 KST 형식의 문자열로 변환하는 예제입니다.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class KSTDateConversion {
public static void main(String[] args) {
// 1. KST 문자열을 Date 객체로 변환
String kstStr = "2024-01-10 12:34:56";
String kstFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(kstFormat);
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Seoul"));
try {
Date kstDate = sdf.parse(kstStr);
System.out.println("1. KST 문자열을 Date 객체로 변환:");
System.out.println(kstDate);
} catch (ParseException e) {
e.printStackTrace();
}
// 2. Date 객체를 KST 문자열로 변환
Date currentDate = new Date(); // 현재 날짜 및 시간
String newKstStr = sdf.format(currentDate);
System.out.println("\n2. Date 객체를 KST 문자열로 변환:");
System.out.println(newKstStr);
}
}
이 코드에서 TimeZone.getTimeZone("Asia/Seoul")를 사용하여 KST의 타임존을 설정합니다. 날짜 포맷은 SimpleDateFormat을 사용하여 지정하고, parse 메서드로 문자열을 Date 객체로 변환하고, format 메서드로 Date 객체를 문자열로 변환합니다.
참고: Java 8부터는 java.time 패키지가 도입되었으며, DateTimeFormatter 등을 사용하여 더 유연하게 날짜 및 시간을 처리할 수 있습니다.
DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA);
String beforeDate = "Thu Jan 19 10:00:00 KST 2012";
Date date = dateFormat.parse(beforeDate);
String afterDate = sdf.format(date); // 2012.01.19
날짜를 원하는 형식으로 표현하기 위해 패턴을 사용하는데 다음 표는 SimpleDateFormat의 패턴 장성에 사용되는 기호들이다.
문자 | 날짜 및 시간 요소 | 표시 | 예제 |
G | Era designator | Text | AD |
y | Year | Year | 1996; 96 |
Y | Week year | Year | 2009; 09 |
M | Month in year (context sensitive) | Month | July; Jul; 07 |
L | Month in year (standalone form) | Month | July; Jul; 07 |
w | Week in year | Number | 27 |
W | Week in month | Number | 2 |
D | Day in year | Number | 189 |
d | Day in month | Number | 10 |
F | Day of week in month | Number | 2 |
E | Day name in week | Text | Tuesday; Tue |
u | Day number of week (1 = Monday, ..., 7 = Sunday) | Number | 1 |
a | Am/pm marker | Text | PM |
H | Hour in day (0-23) | Number | 0 |
k | Hour in day (1-24) | Number | 24 |
K | Hour in am/pm (0-11) | Number | 0 |
h | Hour in am/pm (1-12) | Number | 12 |
m | Minute in hour | Number | 30 |
s | Second in minute | Number | 55 |
S | Millisecond | Number | 978 |
z | Time zone | General time zone | Pacific Standard Time; PST; GMT-08:00 |
Z | Time zone | RFC 822 time zone | -0800 |
X | Time zone | ISO 8601 time zone | -08; -0800; -08:00 |
예제 패턴
날짜 및 시간 패턴 | 결과 |
"yyyy.MM.dd G 'at' HH:mm:ss z" | 2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" | Wed, Jul 4, '01 |
"h:mm a" | 12:08 PM |
"hh 'o''clock' a, zzzz" | 12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" | 0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" | 02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" | Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" | 010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" | 2001-07-04T12:08:56.235-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" | 2001-07-04T12:08:56.235-07:00 |
"YYYY-'W'ww-u" | 2001-W27-3 |
참고 사이트
SimpleDateFormat (Java Platform SE 8 )
Parses text from a string to produce a Date. The method attempts to parse text starting at the index given by pos. If parsing succeeds, then the index of pos is updated to the index after the last character used (parsing does not necessarily use all charac
docs.oracle.com
'study > java&JSP' 카테고리의 다른 글
JSTL FUNCTION (0) | 2015.04.28 |
---|---|
날짜형식 (0) | 2015.02.24 |
java method (1) | 2011.06.16 |
java date 날짜 구하기 (0) | 2011.05.17 |
ibatis - queryForObject null 반환 (0) | 2011.01.18 |