JavaでのString型からCalendar型への変換ソース例をご紹介します。
String型からCalendar型へ変換する際は、文字列型を「DateFormat」クラスの「getDateInstance().parse()」メソッドで変換した値をCalendarクラスのsetTimeメソッドへ設定します。
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/** * <p>[概 要] String型⇒Calendar型への変換処理</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param str 変換前日付文字列 * @return Calendar型オブジェクト(変換に失敗した場合はnullを返します。) */ public static Calendar parseStrToCal(String str){ Calendar cal = new GregorianCalendar(); if(str == null) { cal = null; } else { try { cal.setTime(DateFormat.getDateInstance().parse(str.replace("-", "/"))); } catch (ParseException e) { cal = null; } } return cal; } |
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 |
@Test public void parseStrToCalTest_normal() { // 準備 String str1 = "2015/03/28 00:00:00"; String str2 = "2015/03/29 00:00:00"; String str3 = "abc"; // 期待値 Calendar expected1 = Calendar.getInstance(); expected1.clear(); expected1.set(2015, 2, 28); Calendar expected2 = Calendar.getInstance(); expected2.clear(); expected2.set(2015, 2, 29); // 実行 Calendar result1 = UtilSample1.parseStrToCal(str1); Calendar result2 = UtilSample1.parseStrToCal(str2); Calendar result3 = UtilSample1.parseStrToCal(str3); Calendar result4 = UtilSample1.parseStrToCal(null); // 検証 assertEquals("日付文字列が一致していません。", expected1, result1); assertEquals("日付文字列が一致していません。", expected2, result2); assertNull("戻り値がNULLではありません。", result3); assertNull("戻り値がNULLではありません。", result4); } |