この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:T
更新日時:2026-05-15 03:52:15

タイトル: java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
SEOタイトル: java.util.Date cannot be cast to java.sql.Date 対処

この記事の要点
  • Java の java.util.Date cannot be cast to java.sql.Date エラー
  • 原因: java.util.Date(親)→ java.sql.Date(子)のダウンキャストは不可
  • 対処: キャストせず、new java.sql.Date(utilDate.getTime()) でミリ秒経由で変換
  • モダン Java は LocalDate / LocalDateTime + java.sql.Timestamp.valueOf を使うほうが安全

 

エラー内容

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date

 

発生条件と原因

java.util.Dateからjava.sql.Dateにキャストしようとすると発生するエラー。

java.util.Dateはjava.sql.Dateの親クラスなので、親クラスから子クラスへのキャストは不可能。
 

対処法

文法上の制約によって禁止されていることなので、キャストせずに実現可能な方法を考える。