Java 日付文字列を java.util.Date 型へ変換するサンプル

環境
JavaSE 1.8
Eclipse 4.14.0

構文
1.public static final DateFormat getDateInstance()
デフォルトのFORMATロケールに対し、デフォルトのフォーマット・スタイルを持つ日付フォーマッタを取得します。

2.public Date parse(String source)throws ParseException
指定された文字列の先頭からテキストを解析して日付を生成します。メソッドは指定された文字列のテキスト全体に使用されない場合もあります。
日付文字列 (フォーマット yyyy/MM/dd ) を java.util.Date 型へ変換します。
日付文字列 (フォーマット yyyy-MM-dd ) を java.util.Date 型へ変換しません。

使用例

package com.arkgame.study;

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

public class DateTest {
      // 日付文字列"yyyy/MM/dd"
      private static String strA = "2022/11/01";

      // 日付文字列"yyyy-MM-dd"
      private static String strB = "2022-11-11";

      public static void main(String[] args) throws ParseException {
            Date date = checkDate(strA);
            System.out.println("通常のパターンの日付文字列の変換結果: " + date);

            System.out.println("\n");
            date = checkDate(strB);
            System.out.println("フォーマとが違うパターンの日付文字列の変換結果: " + date);
      }

      /**
       * 日付文字列"yyyy/MM/dd"をjava.util.Date型へ変換します
       *
       * @param target 変換対象の文字列
       * @return 変換後オブジェクト
       */
      public static Date checkDate(String target) {
            Date date = null;
            try {
                  // 形式"yyyy/MM/dd" 以外の場合ParseException
                  date = DateFormat.getDateInstance().parse(target);
            } catch (ParseException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            }
            return date;

      }
}

実行結果

通常のパターンの日付文字列の変換結果: Tue Nov 01 00:00:00 JST 2022


java.text.ParseException: Unparseable date: "2022-11-11"
      at java.text.DateFormat.parse(DateFormat.java:366)
      at com.arkgame.study.DateTest.checkDate(DateTest.java:33)
      at com.arkgame.study.DateTest.main(DateTest.java:19)
フォーマとが違うパターンの日付文字列の変換結果: null

 

Java

Posted by arkgame