Java 文字列( String )から日付型( Date )に変換する方法 - クラス Date ホームページ制作 | 墨田区

Java 文字列( String )から日付型( Date )に変換する方法 – クラス Date

LINEで送る
Pocket

Java で文字列(String)から日付型(Date)へ変換する方法をご紹介します。
実務ではよく利用しますので、しっかり理解しておきましょう。

注: ここでの Date は、java.util.Date を指します。

まず、Java で 文字列から日付型 Date への変換は、SimpleDateFormat を利用します。

SimpleDateFormat をインスタンス化した後、setLenient メソッドと、parse メソッドを利用することで変換できます。

変換できない文字列が指定されると、例外( ParseException ) が発生しますので、注意しましょう。

今回のサンプルは、文字列日付と書式を指定して変換します。変換できない場合には null を返します。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


サンプルソース

/**
 * 指定されたパターン文字列の文字列を Date オブジェクトにして返します。
 * Date オブジェクトとして有効でない場合は null を返します。
 *
 * @param value 日付を表す文字列
 * @param format 日付を表す文字列のパターン書式 (yyyy/MM/dd など)
 * @return 日付を表す文字列の Date オブジェクト
 */
public static Date toDate(String value, String format) {

    if ( value == null || value == "" )
        return null;

    if ( format == null || format == "" )
        format = "yyyy/MM/dd";

    // 日付フォーマットを作成
    SimpleDateFormat dateFormat = new SimpleDateFormat(format);

    // 日付の厳密チェックを指定
    dateFormat.setLenient(false);

    try {
        // 日付値を返す
        return dateFormat.parse(value);
    } catch ( ParseException e ) {
        // 日付値なしを返す
        return null;
    } finally {
        dateFormat = null;
    }
}

/**
 * 指定されたパターン文字列の文字列を Date オブジェクトにして返します。
 * Date オブジェクトとして有効でない場合は null を返します。
 *
 * @param value 日付を表す文字列
 * @return 日付を表す文字列の Date オブジェクト
 */
public static Date toDate(String value) {
    return toDate(value , "yyyy/MM/dd");
}

toDate

今回は、DateUtils というクラスを作り、staticメソッドとして用意しています。
内部では、dateFormat.parse を実行していますが、ParseException が発生した場合は、デフォルト値を返すようにしてあります。
このようなメソッドを用意しておくことで、ビジネスロジック内に余計な try {} catch {} を書く必要がなく、ソースを美しく保つことができますので、ぜひ活用ください。

それでは、テストを実施してみましょう。


テスト

以下のようなテストソースを用意しました。

System.out.println(DateUtils.toDate("", ""));
System.out.println(DateUtils.toDate(null, null));
System.out.println(DateUtils.toDate("2013/12/17", "yyyy/MM/dd"));
System.out.println(DateUtils.toDate("2013/12", "yyyy/MM/dd"));
System.out.println(DateUtils.toDate("20131217", "yyyy/MM/dd"));
System.out.println(DateUtils.toDate("20131217", "yyyyMMdd"));
System.out.println(DateUtils.toDate("XYZ", "yyyy/MM/dd"));
System.out.println(DateUtils.toDate("2013/12/17"));
  • 1 行目:日付文字列・日付書式共に空文字列ですので null が返ります。
  • 2 行目:日付文字列・日付書式共に null ですので null が返ります。
  • 3 行目:日付文字列・日付書式共に正常な値ですので、日付型が返ります。
  • 4 行目:日付文字列が正常でないので null が返ります。
  • 5 行目:日付文字列に対して、日付書式が正常でないので null が返ります。
  • 6 行目:日付文字列・日付書式共に正常な値ですので、日付型が返ります。
  • 7 行目:日付文字列が正常でないので null が返ります。
  • 8 行目:日付文字列が正常なので 日付型 が返ります。

結果

結果は、以下の通りです。

null
null
Tue Dec 17 00:00:00 JST 2013
null
null
Tue Dec 17 00:00:00 JST 2013
null
Tue Dec 17 00:00:00 JST 2013

日付の変換についてご理解いただけましたか?
この辺りは実務では常に求められるので、しっかり覚えておきたいですね。

おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

Javaの勉強が思うように進まないときは!

Javaの勉強が思うように進まないのであれば、プロに直接質問ができる プログラミングスクール を検討してみてはいかがでしょうか?プログラミングスクールに申し込めば、短期間で一定のスキルを身に着けることができます!

Javaコースあり!オンライン完結型 テックアカデミー TechAcademy [テックアカデミー]

どこかに通う必要なく、自宅でプログラミングやアプリ開発を学ぶことができるのが特徴のスクールです。未経験からプロになるまで最短4週間という、超短期集中型の学習ができます。年齢層は10代〜40代の男女が中心で、学引があり多くの学生が受講しているそうですよ。オンラインで受講ができるスクールですので、全国どこからでも学習ができますね。

更にさらに、パーソナルメンターにチャット質問できちゃうんです!!

これは素晴らしいことですよ!ハマったり困ったことが起こるのがプログラミングの世界。知っている誰かに聞けば数分で解決することが、自分だけだと何時間もかかったりしますから!いや、これホントですよ。

しかし、便利な世の中になりましたよねー。一昔前ではオンラインで学習できるなんて、思いもよりませんでしたから。講師もバリバリのエンジニアですので、現場で使えるスキルを教えてもらえます。なんとも素晴らしいスクールがあったものですね。学割を使えば社会人より半額以下で受講できますから、学生さんには超おすすめです。

これから Java プログラミングを勉強して、将来はプログラマーとして活躍したいと思っている方には、就職保証付きJavaエンジニアコース というのがおすすめです。就職先まで保証してくれるとなれば、もう安心して学習に専念できますね。夢への第一歩はここから始まるのかも。あ、将来はライバルですね^^

オンラインスクールですから営業エリアは全国です。
気になる方は一度チェックしてみてください。無料の動画説明会も常時開催していますよ。


Javaコースあり!未経験者にウケてる KENスクール パソコンスクール・パソコン教室 【KENスクール】個別指導のWeb-DTP・OA・IT PCスクール

理解度や学習ペースに合わせて、一人ひとりが納得して前進できる授業を提供してくれるのが特徴です。特に課題製作は現場さながらで、実務に即したものとなっていますので短期でのスキルアップが望めます。自宅学習のサポートも充実していて、授業内容をいつでもビデオで振り返ることができるのもうれしいですね。好きな時間に好きな場所で、無理なくスケジューリングできるので、仕事の忙しい方でも柔軟に学ぶことができますよ。

更にさらに、なんと 就職サポート をしてくれるというのですから驚きです!!

履歴書の書き方から面接指導、求人の紹介など、具体的な就職先まで提案してくれるんです!私も「もっと早く出会いたかったなぁー、こんなスクール」・・・って思っちゃいました^^

東京・神奈川・愛知・大阪を営業エリアとされています。
まずは気軽に 無料体験予約 に申し込んでみるのもアリですよ。


コメントを残す

お名前 (必須)
メールアドレス
(アドレスは公開されません)

コメント(必須)

Trackback URL