スライドショースライドショー

【Java入門】String型と日付型(Date型)を変換(SQLのDate型も解説)

こんにちは!エンジニアの中沢です。

Javaには日付を扱うDate型があります。この記事では、String型と日付型(Date型)の変換方法について

  • Date型とは
  • 文字列を日付型(Date型)に変換する方法
  • Date型をString型に変換する方法

という基本的な内容から、

  • String型からSQLのDate型に変換する方法

などの応用的な使い方に関しても解説していきます。今回はString型と日付型(Date型)の変換方法について、使い方をわかりやすく解説します!

Dateクラスとは

Dateクラスは日時を取得したり、日時を計算するときに使用する日付型のクラスです。Dateクラスを使用するには「java.util.Date」をインポートする必要があります。Dateクラスを使うことで、日付に関する様々な処理を行うことができます。

文字列を日付型(Date型)に変換する方法

初めに文字列を日付型(Date型)に変換する方法を解説します。文字列を日付型(Date型)に変換するにはSimpleDateFormatを使って、文字列のフォーマットを指定する必要があります。

例えば、文字列が“2017/03/02”ならフォーマットは“yyyy/MM/dd”となります。時間を含む文字列の場合も同じように、“2017-03-02 01:23:45”ならフォーマットは“yyyy-MM-dd hh:mm:ss”となります。

このとき、月のフォーマットは大文字の”M”で、分は小文字の”m”であることに注意してください。また、フォーマットが間違っているとParseExceptionの例外が発生するので気をつけてください。

フォーマットの指定ができたらparseメソッドを使ってDate型に変換します。文字列を日付型(Date型)に変換する方法を覚えるために次のプログラムを見てみましょう。

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

public class Main {
 
    public static void main(String[] args) {
        try {
            String strDate = "2017/03/02 01:23:45";
            System.out.println("文字列 = " + strDate);
         
            SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
            Date date = sdFormat.parse(strDate);
            System.out.println("Date型 = " + date);
         
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
 
}

実行結果:

文字列 = 2017/03/02 01:23:45
Date型 = Thu Mar 02 01:23:45 UTC 2017

ここではSimpleDateFormatを使ってフォーマットを指定した後に、parseメソッドでDate型に変換した内容を表示しています。また、parseメソッドは例外処理が必要なため、try-catch文を使用しています。

SimpleDateFormatで日付のフォーマットを指定する方法についてはこちらの記事で詳しく解説しているので、ぜひ確認してください。

【Java入門】SimpleDateFormatで日付フォーマットの設定
更新日 : 2019年5月28日

Date型をString型に変換する方法

次にDate型をString型に変換する方法を解説します。Date型をString型に変換する場合はSimpleDateFormatで変換したいフォーマットを指定して、formatメソッドで変換します。次のプログラムで確認してみましょう。

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

public class Main {
 
    public static void main(String[] args) {
        try {
            String strDate = "2017/03/02 01:23:45";
            SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
            Date date = sdFormat.parse(strDate);
            System.out.println("Date型 = " + date);
         
            String str = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date);
            System.out.println("String型 = " + str);
         
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
 
}

実行結果:

Date型 = Thu Mar 02 01:23:45 UTC 2017
String型 = 2017-03-02 01:23:45

ここでは日付の区切りを”-”にしてString型に変換しています。

String型からSQLのDate型に変換する方法

最後にString型からSQLのDate型に変換する方法を解説します。日付の文字列をSQLのDate型の”yyyy-mm-dd”の形式に合わせて用意して、valueOfメソッドを使用するとString型からSQLのDate型に変換する事ができます。

ここではSQLのデータ型を使用するため、java.sql.Dateクラスをimportしてください。次のプログラムで確認してみましょう。

import java.sql.Date;

public class Main {
 
    public static void main(String[] args) {
        Date sqlDate= Date.valueOf("2017-03-02");
        System.out.println("SQLのDate型 = " + sqlDate);
    }
 
}

実行結果:

SQLのDate型 = 2017-03-02

これでString型からSQLのDate型に変換することができました!

Dateクラスの使い方総まとめ

Dateクラスのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java】Dateクラスで日付を扱う方法を5つのパターン別に解説
更新日 : 2019年10月14日

Calendarクラスの使い方総まとめ

Calendarクラスは、現在の年月日を取得したり、指定した日時の設定や加算・減算、日時を比較するなど、日時を扱うさまざまな処理が可能なクラスです。Calendarクラスの使い方はこちらの記事で詳しく解説しているので、ぜひ確認してください。

【Java入門】Calendarクラスの使い方総まとめ
更新日 : 2019年10月23日

DateTimeクラスの使い方

DateTimeクラスは、日付を扱うときによく使用するCalendarクラスを、より扱いやすくしたライブラリです。DateTimeクラスの使い方はこちらの記事で詳しく解説しているので、ぜひ確認してください。

【Java】DateTimeクラスで日付を扱う方法を解説
更新日 : 2019年10月14日

データ型の範囲などを一覧で確認したい方へ

ここではDate型についてみてきましたが、よく使われるデータ型の範囲などを一覧で確認したい場合は、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【一目でわかるJava】変数の宣言と使い方
更新日 : 2019年8月5日

まとめ

ここではString型と日付型(Date型)とSQLの日付型の変換方法について解説しました。変換のフォーマットの指定を間違えると例外が発生するので注意してくださいね。もし日付型(Date型)の変換方法を忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説