[034] 微信公眾帳號開發教程第10篇-解析接口中的消息創建時間CreateTime(轉)


從微信公眾平台的消息接口指南中能夠看出,每種類型的消息定義中,都包括有CreateTime參數,它表示消息的創建時間,例如以下圖所看到的:

上圖是消息接口指南中4.1-文本消息的定義。注意CreateTime的描寫敘述:消息創建時間(整型),重點在於這是一個整型的時間,而不是我們大家所熟悉的相似於"yyyy-MM-dd HH:mm:ss"的標准格式時間。本文主要想介紹的就是微信消息接口中定義的整型消息創建時間CreateTime的含義,以及怎樣將CreateTime轉換成我們所熟悉的時間格式。

 

整型CreateTime的含義

消息接口中定義的消息創建時間CreateTime,它表示1970年1月1日0時0分0秒至消息創建時所間隔的秒數,注意是間隔的秒數,不是毫秒數!

 

整型CreateTime的轉換

在Java中,我們也常常會通過以下兩種方式獲取long類型的時間,先上代碼:

[java]  view plain copy
 
  1. /** 
  2.  * 演示Java中常常使用的獲取long類型時間的兩種方式 
  3.  */  
  4. public static void main(String[] args) {  
  5.     long longTime1 = System.currentTimeMillis();  
  6.     // 1373206143378  
  7.     System.out.println(longTime1);  
  8.   
  9.     long longTime2 = new java.util.Date().getTime();  
  10.     // 1373206143381  
  11.     System.out.println(longTime2);  
  12. }  

上面兩種獲取long類型時間的方法是等價的,獲取到的結果表示當時時間距離1970年1月1日0時0分0秒0毫秒的毫秒數,注意這里是毫秒數!那么這里獲取到的long類型的時間怎樣轉換成標准格式的時間呢?方法例如以下:

[java]  view plain copy
 
  1. /** 
  2.  * 演示Java中常常使用的獲取long類型時間的兩種方式 
  3.  */  
  4. public static void main(String[] args) {  
  5.     // 當前時間(距離1970年1月1日0時0分0秒0毫秒的毫秒數)  
  6.     long longTime = 1373206143378L;  
  7.       
  8.     String stdFormatTime = formatTime(longTime);  
  9.     // 輸出:2013-07-07 22:09:03  
  10.     System.out.println(stdFormatTime);  
  11. }  
  12.   
  13. /** 
  14.  * 將long類型的時間轉換成標准格式(yyyy-MM-dd HH:mm:ss) 
  15.  *  
  16.  * @param longTime 
  17.  * @return 
  18.  */  
  19. public static String formatTime(long longTime) {  
  20.     DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  21.     return format.format(new Date(longTime));  
  22. }  

上面演示了將一個long類型的時間轉換成標准格式的時間,僅僅是簡單的運用了SimpleDateFormat類,比較好懂的。那么再回到今天的主題上來,怎樣將CreateTime轉換成標准格式的時間。

微信消息接口中的CreateTime表示距離1970年的秒數,而System.currentTimeMillis()表示距離1970年的毫秒數,它們之間的換算就相當於:1秒=1000毫秒,即將CreateTime乘以1000,就變成了距離1970年的毫秒數了,就能夠使用上面的formatTime()方法來處理了,是不是非常easy呢?

以下,我還是單另封裝一個方法,用於將微信消息中的整型的消息創建時間CreateTime轉換成標准格式的時間,例如以下:

[java]  view plain copy
 
  1. /** 
  2.  * 將微信消息中的CreateTime轉換成標准格式的時間(yyyy-MM-dd HH:mm:ss) 
  3.  *  
  4.  * @param createTime 消息創建時間 
  5.  * @return 
  6.  */  
  7. public static String formatTime(String createTime) {  
  8.     // 將微信傳入的CreateTime轉換成long類型,再乘以1000  
  9.     long msgCreateTime = Long.parseLong(createTime) * 1000L;  
  10.     DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  11.     return format.format(new Date(msgCreateTime));  
  12. }  



假設認為文章對你有所幫助,請通過留言或關注微信公眾帳號xiaoqrobot來支持柳峰哦!


免責聲明!

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



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