카테고리 없음
Date <-> String / Date <-> Calendar
설총이
2018. 6. 4. 18:19
*Date <-> String
formatting (date -> text)
::SimpleDateFormat.format(Date)
1 2 3 4 5 6 7 8 9 10 11 | public static void main(String[] args) { DateFormat df = new SimpleDateFormat("yyyy년 MM월 dd일"); DateFormat df2 = new SimpleDateFormat("yyyy/MM/dd"); try { Date d = df.parse("2018년 7월 7일"); System.out.println(df2.format(d)); }catch(Exception e) { } } | cs |
parsing(text -> date) :: 문자열을 받아와서 Date타입으로 바꿔주는 애
::SimpleDateFormat.parse(String) => 처음에 지정한 패턴에 꼭 맞춰주어야함.
String값을 저리 지정해주었다면 쓰는것도 그대로 "yyyy/MM/dd" 순으로 적어주어야한다.
parse라는 메서드에는 기본적으로 throw값이있어서 try~catch문으로 묶는다.
1 2 3 4 5 | import java.util.*; public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.set(2018,5,4); Date day = cal.getTime(); System.out.println(day); | cs |
날짜를 구하고자 할때, 구현된 Calendar클래스안의 getInstance() 를 이용해 객체 생성 후 사용한다.
사용할 수 있는 이유는 위에 java.util.Calendar를 import했기때문에 사용가능하다.
(*; 는 java.util 패키지안에 있는 모든 클래스들을 사용할수있도록 *로 표시)
*SimpleDateFormat의 Pattern
Letter | Date or Time Component | Presentation | Examples |
---|---|---|---|
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 |
*Date -> Calendar.
Calendar.setTime(Date) //
:: 저장할때는 set() 메서드를 사용한다.
주의할점은 원하는 month값을 저장할때에는 그 값에 -1을 해주어야한다.
month가 0부터 시작하는것으로 구현되어있기때문이다.
*Calendar -> Date
Calendar.getTime();
:: set으로 저장했다면 getTime()메서드로 꺼내온다.
나올때 데이터타입은 Date로 꺼내져오는것을 기억 !