>  Q&A  >  본문

java.util.Date를 java.sql.Date로 변환하면 날짜가 부정확해지는 이유는 무엇입니까?

<p>mysql 데이터베이스에 생년월일을 삽입하기 위해 java.util.Date를 java.sql.date로 변환하고 있습니다. </p> <p>그러나 <code>2001-04-03</code>를 입력하면 항상 <code>java.sql.Date</code>가 됩니다. </p> <pre class="brush:java;toolbar:false;">BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("dob(YYYY-MM-DD)를 입력하세요 :"); 문자열 날짜 = br.readLine(); SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD"); java.util.Date util_dob = dateFormat.parse(date); java.sql.Date dob = new java.sql.Date(util_dob.getTime()); </pre> <p>입력: 2001-04-03</p> <p>출력: 2000-12-31</p> <p>기대: 2001-04-03</p>
P粉883278265P粉883278265415일 전363

모든 응답(1)나는 대답할 것이다

  • P粉237689596

    P粉2376895962023-09-02 00:55:05

    형식 문자열이 올바르지 않습니다.

    다음 문서를 확인하세요. SimpleDateFormat: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html

    • 대문자 Y: 기념일을 나타내는 패턴 문자
    • 대문자 M: (올바른)
    • 을 나타내는 패턴 문자
    • 대문자 D: 일수를 나타내는 패턴 문자

    소문자 y와 소문자 d를 사용해야 합니다.

    • 소문자 y: 연도를 나타내는 패턴 문자
    • 소문자 d: 월의 일 수를 나타내는 패턴 문자

    내 생각에는 변환이 다음 패턴을 사용해야 한다고 생각합니다.

    으아악

    회신하다
    0
  • 취소회신하다