SimpleDateFormat 與時區


 

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區對應的毫秒值最大。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM