■ はじめに
Java の 日付・日時 について、まとめる
【1】日付に関するクラス
1)Javaプログラム
[1-1] java.util.Date
=> 日付(YYYY/MM/DD)を扱う際に使用
https://docs.oracle.com/javase/jp/7/api/java/util/Date.html
[1-2] java.util.Calendar
=> 日時(YYYY/MM/DD HH:mm:ss SSS) ※ 月は、「0~11」でゼロ発進になっていることに注意
https://docs.oracle.com/javase/jp/7/api/java/util/Calendar.html
2)DB用
=> 日付(YYYY/MM/DD)を扱う際に使用
=> 日時(YYYY/MM/DD HH:mm:ss SSS)
=> 時間(HH:mm:ss SSS)
3)その他
* Java1.8で導入された日付・日時クラス => 以下の関連記事を参照のこと。
日付・時間 について ~ Java8編 ~
https://dk521123.hatenablog.com/entry/2018/02/24/014650
【2】相互変換
文字列 <=> java.util.Date
// 文字列 => Date : SimpleDateFormat.parse() を利用 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = format.parse("2014-11-21"); System.out.println(date.toString()); } catch (ParseException e) { e.printStackTrace(); } // Date => 文字列 : SimpleDateFormat.format() を利用 SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); try { String text = dateformat.format(new Date()); System.out.println(text); } catch (Exception e) { e.printStackTrace(); }
文字列 <=> Calendar
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class CalendarUtil { public static void main(String[] args) throws Exception { String created = "2014/12/09"; Calendar calendar = CalendarUtil.toCalendar(created, "yyyy/MM/dd"); String dateValue = CalendarUtil.toString(calendar, "yyyy-MM-dd HH:mm:ss"); // Result : 2014-12-09 00:00:00 System.out.println("Result : " + dateValue); } // 文字列 => Calendar private static Calendar toCalendar(String targetValue, String dateFormat) throws Exception { SimpleDateFormat dateformat = new SimpleDateFormat(dateFormat); try { Date date = new Date(dateformat.parse(targetValue).getTime()); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } catch (Exception ex) { throw ex; } } // Calendar => 文字列 private static String toString(Calendar targetValue, String dateFormat) throws Exception { SimpleDateFormat dateformat = new SimpleDateFormat(dateFormat); try { return dateformat.format(targetValue.getTime()); } catch (Exception ex) { throw ex; } } }
Date <=> Calendar
// Date => Calendar private static Calendar toCalendar(Date targetDate) { Calendar calendar = Calendar.getInstance(); calendar.setTime(targetDate); return calendar; }
参考文献
http://d.hatena.ne.jp/chiheisen/20091123/1258986655
java.sql.Timestamp
http://www.itmedia.co.jp/enterprise/articles/0407/23/news002.html
関連記事
日付・時間 について ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2016/10/12/235711
日付・時間 について ~ System.currentTimeMillis / System.nanoTime ~
https://dk521123.hatenablog.com/entry/2017/04/25/223122
日付・時間 について ~ Java8編 ~
https://dk521123.hatenablog.com/entry/2018/02/24/014650
【Kotlin】 日付・時間 について
https://dk521123.hatenablog.com/entry/2020/07/27/000000