微信公众帐号开发之解析接口中的消息创建时间CreateTime
白羽 2018-06-26 来源 :网络 阅读 1311 评论 0

摘要:本文将带你了解微信公众帐号开发之解析接口中的消息创建时间CreateTime,希望本文对大家学微信有所帮助。


 

从微信公众平台的消息接口指南中可以看出,每种类型的消息定义中,都包含有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()方法来处理了,是不是很简单呢?

下面,我还是单另封装一个方法,用于将微信消息中的整型的消息创建时间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. }

 

 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程