時間日期類
阿新 • • 發佈:2017-10-19
字符 日期格式 short 9.png mon string 創建 日期時間 完整
1.Date類
在JDK的java.util包中提供了一個Date類用於表示時間和日期.
1 public static void main(String[] args) { 2 //無參構造方法, 用來創建當前日期時間的Date對象 3 Date d = new Date(); 4 System.out.println(d); 5 6 //long型參數作為構造方法, 用來創建指定時間的日期對象, 參數表示毫秒數 7 Date d1 = new Date(1495119792068L);8 System.out.println(d1); 9 10 //long getTime() 返回Date對象表示的毫秒數 11 Date d2 = new Date(); 12 long time = d2.getTime(); 13 System.out.println(time); 14 15 //void setTime(Date date) 設置指定Date時間 16 Date d3 = new Date(); 17 d3.setTime(1495119792068L);18 System.out.println(d3); 19 }
運行結果為
2.Calendar類
Calendar類可以通過特定的方法設置和讀取日期中的指定部分(比如 年,月,日,時,分,秒)
Calendar類是一個抽象類, 不可以被實例化, 需要用靜態方法getInstance()來獲取Calendar對象
獲取日期中指定部分
1 public static void main(String[] args) { 2 Calendar c = Calendar.getInstance(); 3 4 // int get(int field) 返回給定日歷字段的值5 int year = c.get(Calendar.YEAR); 6 int month = c.get(Calendar.MONTH) + 1; 7 int day = c.get(Calendar.DATE); 8 9 int hour = c.get(Calendar.HOUR); 10 int minute = c.get(Calendar.MINUTE); 11 int second = c.get(Calendar.SECOND); 12 13 System.out.println(year + "年" + month + "月" + day + "日" + hour + "時" 14 + minute + "分" + second + "秒"); 15 }
運行結果為
設置日期
1 public static void main(String[] args) { 2 Calendar c = Calendar.getInstance(); 3 4 //void set(int year, int month, int day) 設置Calendar對象的年月日三個字段 5 c.set(2008,7,8); 6 int year = c.get(Calendar.YEAR); 7 int month = c.get(Calendar.MONTH)+1; 8 int day = c.get(Calendar.DATE); 9 10 System.out.println(year+"年"+month+"月"+day+"日"); 11 }
運行結果為
1 public static void main(String[] args) { 2 Calendar c = Calendar.getInstance(); 3 4 //void set(int field, int value) 為指定日歷字段設定值 5 c.set(c.YEAR, 2008); 6 c.set(c.MONTH, 7); 7 c.set(c.DATE, 8); 8 int year = c.get(Calendar.YEAR); 9 int month = c.get(Calendar.MONTH)+1; 10 int day = c.get(Calendar.DATE); 11 12 System.out.println(year+"年"+month+"月"+day+"日"); 13 }
運行結果為
添加日期
1 public static void main(String[] args) { 2 Calendar c = Calendar.getInstance(); 3 c.set(2008,7,8); 4 5 //void add(int field, int amount) 根據日歷規則, 為指定日期字段添加/減去指定值 6 c.add(Calendar.MONTH, 2); 7 8 int year = c.get(Calendar.YEAR); 9 int month = c.get(Calendar.MONTH)+1; 10 int day = c.get(Calendar.DATE); 11 12 System.out.println(year+"年"+month+"月"+day+"日"); 13 }
運行結果為
3.DateFormat類
DateFormat類用於將Date對象格式化成固定格式的字符串
或者將固定格式的字符串轉換成Date對象
1 public static void main(String[] args) { 2 Date d = new Date(); 3 4 // Full格式的日期格式器對象 5 DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL); 6 // Long格式的日期格式器對象 7 DateFormat longFormat = DateFormat.getDateInstance(DateFormat.LONG); 8 // medium格式的日期/時間 格式器對象 9 DateFormat mediumFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); 10 // short格式的日期/時間 格式器對象 11 DateFormat shortFormat = DateFormat.getDateInstance(DateFormat.SHORT); 12 13 // 打印格式化的日期或者日期/時間 14 System.out.println("當前日期的完整格式為: "+fullFormat.format(d)); 15 System.out.println("當前日期的長格式為: "+longFormat.format(d)); 16 System.out.println("當前日期的普通格式為: "+mediumFormat.format(d)); 17 System.out.println("當前日期的短格式為: "+shortFormat.format(d)); 18 }
DateFormat中還提供了一個parse()方法, 能夠將一個字符串解析成Date對象, 要求字符串必須符合日期/時間格式要求
1 public static void main(String[] args) throws ParseException { 2 DateFormat df = DateFormat.getDateInstance(DateFormat.LONG); 3 String d = "2017年10月19日"; 4 System.out.println(df.parse(d)); 5 }
4.SimpleDateFormat類
使用DateFormat類格式化日期的時候是固定的字符串, 不夠靈活
JDK提供了SimpleDateFormat類, 該類是DateFormat的子類
SimpleDateFormat類可以使用new關鍵字創建實例對象
1 public static void main(String[] args) throws ParseException { 2 // 構造方法傳入一個格式化字符串參數 3 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 4 5 // String format(Date date) 將一個Date格式化為指定格式的日期 6 String date = sdf.format(new Date()); 7 System.out.println(date); 8 9 // Date parse(String source) 將給定字符串解析成Date 10 Date d = sdf.parse("2017/10/19 09:32:52"); 11 System.out.println(d); 12 }
運行結果為
時間日期類