微信公众帐号开发教程第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. publicstaticvoidmain(String[]args){
  5. longlongTime1=System.currentTimeMillis();
  6. //1373206143378
  7. System.out.println(longTime1);
  8. longlongTime2=newjava.util.Date().getTime();
  9. //1373206143381
  10. System.out.println(longTime2);
  11. }

上面两种获取long类型时间的方法是等价的,获取到的结果表示当时时间距离1970年1月1日0时0分0秒0毫秒的毫秒数,注意这里是毫秒数!那么这里获取到的long类型的时间如何转换成标准格式的时间呢?方法如下:

[java] view plain copy
  1. /**
  2. *演示Java中常用的获取long类型时间的两种方式
  3. */
  4. publicstaticvoidmain(String[]args){
  5. //当前时间(距离1970年1月1日0时0分0秒0毫秒的毫秒数)
  6. longlongTime=1373206143378L;
  7. StringstdFormatTime=formatTime(longTime);
  8. //输出:2013-07-0722:09:03
  9. System.out.println(stdFormatTime);
  10. }
  11. /**
  12. *将long类型的时间转换成标准格式(yyyy-MM-ddHH:mm:ss)
  13. *
  14. *@paramlongTime
  15. *@return
  16. */
  17. publicstaticStringformatTime(longlongTime){
  18. DateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
  19. returnformat.format(newDate(longTime));
  20. }

上面演示了将一个long类型的时间转换成标准格式的时间,只是简单的运用了SimpleDateFormat类,比较好懂的。那么再回到今天的主题上来,如何将CreateTime转换成标准格式的时间。

微信消息接口中的CreateTime表示距离1970年的秒数,而System.currentTimeMillis()表示距离1970年的毫秒数,它们之间的换算就相当于:1秒=1000毫秒,即将CreateTime乘以1000,就变成了距离1970年的毫秒数了,就可以使用上面的formatTime()方法来处理了,是不是很简单呢?

下面,我还是单另封装一个方法,用于将微信消息中的整型的消息创建时间CreateTime转换成标准格式的时间,如下:

[java] view plain copy
  1. /**
  2. *将微信消息中的CreateTime转换成标准格式的时间(yyyy-MM-ddHH:mm:ss)
  3. *
  4. *@paramcreateTime消息创建时间
  5. *@return
  6. */
  7. publicstaticStringformatTime(StringcreateTime){
  8. //将微信传入的CreateTime转换成long类型,再乘以1000
  9. longmsgCreateTime=Long.parseLong(createTime)*1000L;
  10. DateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
  11. returnformat.format(newDate(msgCreateTime));
  12. }



如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号xiaoqrobot来支持柳峰哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值