본문 바로가기

백준/언랭 탈출하기

[Java] 백준 10669번 : 오늘 날짜

 

문제

서울의 오늘 날짜를 출력하는 프로그램을 작성하시오.

입력

입력은 없다.

출력

서울의 오늘 날짜를 "YYYY-MM-DD" 형식으로 출력한다.

 

예제 출력 1 복사

2015-01-24

힌트

채점 서버는 시간대(Timezone)는 UTC+0 이다.

다음은 채점 서버에서 KST 시간으로 2018년 3월 21일 오후 2시 7분 38초에 date 명령어를 실행시킨 결과이다.

Wed Mar 21 05:07:38 UTC 2018

출처

  • 문제를 만든 사람: 백준

 

오답 코드

import java.text.SimpleDateFormat; // 시간 형식 지정을 위함
import java.util.Date; // 현재 시간을 출력

public class Main {
  public static void main(String[] args) {
    Date time = new Date();
    SimpleDateFormat Format = new SimpleDateFormat("YYYY-MM-DD");
    String now = Format.format(time);
    System.out.println(now);
  }
}

 

정답 코드 

import java.text.SimpleDateFormat;
import java.util.Date;

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

틀린 이유 :  'YYYY'-'yyyy' / 'DD'-'dd' 차이점 

'yyyy' : 대부분 사용자가 원하는 연도 포맷

'YYYY' : Week Year, 주 기준 연도로 일부 특별한 상황에서만 사용

예) 2015-12-28 / YYYY : 2016년(첫째주로 간주), yyyy: 2015

 

'DD' 연의 일자

'dd': 보통 일자를 나타내는 경우 사용

 

결론

년-월-일 형식으로 올바르게 출력하려면 'yyyy-MM-dd' 패턴 사용할 것

 

자바에서 현재 시간을 사용하려면 -> import java.util.Date; 사용

원하는 형태에 따라 시간을 나타내고 싶다면 -> import java.text.SimpleDateFormat; 사용

        Date time = new Date();
        SimpleDateFormat Format = new SimpleDateFormat("yyyy-MM-dd");

에서 끝나는 것이 아니라

 

        Date time = new Date();
        SimpleDateFormat Format = new SimpleDateFormat("yyyy-MM-dd");
        String now = Format.format(time);

String 형태로 출력되어야 하니까 String 객체에 담아줄 것

 

출처 : chatGPT