JavaでのString型からDate型への変換ソース例をご紹介します。
String型からDate型へ変換する際は基本的に「DateFormat」クラスの「getDateInstance().parse()」メソッドを使用します。
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/** * <p>[概 要] String型⇒Date型への変換処理</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param str 変換前日付文字列 * @return Date型オブジェクト(変換に失敗した場合はnullを返します。) */ public static Date parseStrToDate(String str){ Date date; if(str == null) { date = null; } else { try { date = DateFormat.getDateInstance().parse(str.replace("-", "/")); } catch (ParseException e) { date = null; } } return date; } |
JUnitサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
@Test public void parseStrToDateTest_Normal() { // 準備 String str1 = "2014/06/01"; String str2 = "2014-06-01"; String str3 = "2014/06/01 00:00:00"; String str4 = "2014-06-01 00:00:00"; Calendar cal = Calendar.getInstance(); cal.clear(); cal.set(2014, 5, 1); Date date = cal.getTime(); // 実行 Date result1 = UtilSample1.parseStrToDate(str1); Date result2 = UtilSample1.parseStrToDate(str2); Date result3 = UtilSample1.parseStrToDate(str3); Date result4 = UtilSample1.parseStrToDate(str4); // 検証 assertEquals("日付が一致していません。", date, result1); assertEquals("日付が一致していません。", date, result2); assertEquals("日付が一致していません。", date, result3); assertEquals("日付が一致していません。", date, result4); } @Test public void parseStrToDateTest_Err() { // 準備 String str1 = "20140601"; String str2 = "abc"; String str3 = ""; String str4 = null; // 実行 Date result1 = UtilSample1.parseStrToDate(str1); Date result2 = UtilSample1.parseStrToDate(str2); Date result3 = UtilSample1.parseStrToDate(str3); Date result4 = UtilSample1.parseStrToDate(str4); // 検証 assertNull("戻り値がnullではありません。", result1); assertNull("戻り値がnullではありません。", result2); assertNull("戻り値がnullではありません。", result3); assertNull("戻り値がnullではありません。", result4); } |