Date now=new Date();
//yyyy年MM月dd日 HH時mm分ss秒 HH為24小時 hh為12小時
//yy/MM/dd HH:mm
//yyyy-MM-dd HH:mm:ss == now.toLocaleString();
格式可以自由組合,不受年月日 : 時分限制等限制 如下:
1 try { 2 SimpleDateFormat format = new SimpleDateFormat("yyyy問你MM年dd HH?mm我ss"); //但不可有字母 3 Date date = format.parse("2014問你12年24 11?20我46"); 4 SimpleDateFormat normalformat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); 5 String dateStr = normalformat.format(date); 6 System.out.println("dateStr=" +dateStr); 7 }catch (Exception e){ 8 System.out.println("e.getMessage()=" +e.getMessage()); 9 }
1 try { 2 SimpleDateFormat format = new SimpleDateFormat("yyyy(MM我dd HH?mm我ss"); 3 Date date = format.parse("2014(12我24 11?20我46"); 4 SimpleDateFormat normalformat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); 5 String dateStr = normalformat.format(date); 6 System.out.println("dateStr=" +dateStr); 7 }catch (Exception e){ 8 System.out.println("e.getMessage()=" +e.getMessage()); 9 }
結果:dateStr=2014年12月24日 11:20:46
1 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒",Locale.ROOT); //Local.root表示顯示時間的格式按照系統上當地時間顯示,還有Local.Chinese 等 2 //在1989.4.11-1989.9.17期間id為GMT+08:00比id為Asia/Shanghai毫秒值多一個小時,其余時間段相等 修改方案:時區id改為:Asia/Shanghai 3 dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); //可以通過此芳芳設置當前時區為東八區,如不設置,默認是當前手機系統所指時區,GMT+08:00時區在 4 String formatedTimeStr = dateFormat.format(now); //得到當前時間的指定格式 8 Date date2 = dateFormat.parse("2017年11月18日 12時20分"); //解析出date對象獲取毫秒值 10 date2.getTime(); //獲取毫秒值
1 try{ 2 3 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒"); 4 dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+08:00")); 5 Log.i("test","str=" + dateFormat.getTimeZone().getID()); 6 Date date = dateFormat.parse("1989年4月11日 0時01分00秒"); 7 Log.i("test","str=" + date.getTime()); 8 9 SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒"); 10 dateFormat2.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); 11 Log.i("test","str=" + dateFormat2.getTimeZone().getID()); 12 // Date date2 = new Date("1989年5月31日0時1分0秒"); 13 Date date2 = dateFormat2.parse("1989年4月11日 0時01分00秒"); //1989年9月18日 14 // String str2 = dateFormat2.format(date2); 15 Log.i("test","str=2=" + date2.getTime()); 16 }catch (Exception e){ 17 e.printStackTrace(); 18 }
時間毫秒值與時區
時間毫秒值 指的是0度經線的位置 從1970.1.1日0點0分0秒開始毫秒值
對於同一個毫秒值,世界各地(24個)時區東1-東12,西1-西12 各個時區對應時間不一樣
向東每個時區逐+1小時,向西每個時區逐減1小時
例如:在0度經線對應2017.11.18 12時30分30秒,在東1區對應 2017.11.18 13時30分30秒,在西1區對應時間2017.11.18 11時30分30秒 ,以此類推
同一個時間,在各個時區,對應的毫秒值也不同 , 比如:2017.11.18 12時30分30秒, 東12區對應的毫秒值最小,西12區對應的毫秒值最大。