2019年11月2日
Java で日付文字列 (フォーマット yyyy/MM/dd ) を java.util.Date 型へ変換するサンプルプログラムです。
/** * 日付文字列"yyyy/MM/dd"をjava.util.Date型へ変換します。 * @param str 変換対象の文字列 * @return 変換後のjava.util.Dateオブジェクト * @throws ParseException 日付文字列が"yyyy/MM/dd"以外の場合 */ public static Date toDate(String str) throws ParseException { Date date = DateFormat.getDateInstance().parse(str); return date; }
public static void main(String[] args) { try { // 通常のパターン Date date = toDate("2007/01/01"); System.out.println(date); // フォーマトが違うパターン date = toDate("2007-01-01"); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); } }
2007/01/01='Mon Jan 01 00:00:00 JST 2007'yyyy/MM/ddの日付文字列は正しく変換されたようですが、yyyy-MM-ddではどうでしょうか。
java.text.ParseException: Unparseable date: "2007-01-01" at java.text.DateFormat.parse(DateFormat.java:335) at Main.toDate(DateUtil.java:627) at Main.main(DateUtil.java:639)yyyy-MM-ddではParseExceptionが発生してしまいました。
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); format.parse("2007-01-01");もっと汎用的なプログラムが欲しいですよね。