1. 程式人生 > >時間日期類

時間日期類

字符 日期格式 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 }

運行結果為

技術分享

時間日期類