한 걸음 두 걸음

백준10699 ] 현재시간 Date / SimpleDateFormat 로 날짜 표시하기 본문

CSE/baekjoon & swexpert

백준10699 ] 현재시간 Date / SimpleDateFormat 로 날짜 표시하기

언제나 변함없이 2019. 3. 7. 21:03
반응형
 System.out.println(formatDate.getCalendar().get(Calendar.HOUR)+"시"+(formatDate.getCalendar().get(Calendar.MINUTE)-5)+"분"+formatDate.getCalendar().get(Calendar.SECOND)+"초");​
import java.util.*;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;


public class Main {
    public static void main(String[] args){
        Date date = new Date();
         SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println(formatDate.format(date));
    }
}

시분초는

 SimpleDateFormat formatDate = new SimpleDateFormat("HH-mm-ss");
   System.out.println(formatDate.format(date));

여기서

 System.out.println(formatDate.getCalendar().get(Calendar.HOUR)+"시"+(formatDate.getCalendar().get(Calendar.MINUTE)-5)+"분"+formatDate.getCalendar().get(Calendar.SECOND)+"초");

방식으로 시분초를 각각 쪼개줄 수도 있습니다.

참고로 String값을 Date로 변환할 땐
SimpleDateFormat으로 String형식이 어떻게 되는지SimpleDateFormat formatDate = new SimpleDateFormat("HH-mm-ss"); 설정하고 이를 Date date = formatDate.parse(String값)처럼 Data에 담으면 됩니다.

JAVA8부터 지원하는 날짜 클래스 (java.time)를 알아봅시다.

위의 Calender클래스는 mutable하기 때문에 스레드에서 안전하지 않고 성능이 불규칙합니다. 때문에 java.time내부의 모든 클래스는 Immutable하고, 메소드 체이닝 방식을 사용하여 람다형식의 함수를 지원하게 되었습니다. 이는 ISO등의 표준을 준수합니다.

1. Instance Class

초단위로 시간을 공식 시간과 최대한 가깝게 제공합니다.
Instance.now()는 현재 instance를 반환합니다.

Instance s = Instance.now();
Instance f = Instance.now();

Duration Class

두 Instance 차이를 표현합니다.

Duration time = Duration.between(s, f);

LocalData / LocalTime / LocalDateTime Class

LocalData : 년월일
LocalTime : 시분초
LocalDateTime 둘 다

LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());

TemporalAdjusters

반응형