`

[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中常用的获取long类型时间的两种方式
 */
public static void main(String[] args) {
	long longTime1 = System.currentTimeMillis();
	// 1373206143378
	System.out.println(longTime1);

	long longTime2 = new java.util.Date().getTime();
	// 1373206143381
	System.out.println(longTime2);
}

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

/**
 * 演示Java中常用的获取long类型时间的两种方式
 */
public static void main(String[] args) {
	// 当前时间(距离1970年1月1日0时0分0秒0毫秒的毫秒数)
	long longTime = 1373206143378L;
	
	String stdFormatTime = formatTime(longTime);
	// 输出:2013-07-07 22:09:03
	System.out.println(stdFormatTime);
}

/**
 * 将long类型的时间转换成标准格式(yyyy-MM-dd HH:mm:ss)
 * 
 * @param longTime
 * @return
 */
public static String formatTime(long longTime) {
	DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	return format.format(new Date(longTime));
}

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

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

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

/**
 * 将微信消息中的CreateTime转换成标准格式的时间(yyyy-MM-dd HH:mm:ss)
 * 
 * @param createTime 消息创建时间
 * @return
 */
public static String formatTime(String createTime) {
	// 将微信传入的CreateTime转换成long类型,再乘以1000
	long msgCreateTime = Long.parseLong(createTime) * 1000L;
	DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	return format.format(new Date(msgCreateTime));
}



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


分享到:
评论

相关推荐

    JAVA微信开发资料

    微信公众帐号开发教程第 10 篇-解析接口中的消息创建时间 CreateTime61 微信公众帐号开发教程第 11 篇-符号表情的发送(上).63 微信公众帐号开发教程第 12 篇-符号表情的发送(下).76 微信公众帐号开发教程第 13 ...

    解析微信公众帐号接口中的消息创建时间CreateTime1

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

    微信公众平台开发Demo

    消息自动回复把消息推送中定义的所有消息都有的字段提取出来,封装成一个基类,这些公有的字段包括:ToUserName(开发者微信号)、FromUserName(发送方帐号,OPEN_ID)、CreateTime(消息的创建时间)、MsgType...

    微信开发文档

    微信开发api开发指南 文本消息 <ToUserName><![CDATA[toUser]]> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]> <Content><![CDATA...

    微信接口ASP版

    微信接口ASP版,可生成以下调试文件 ####以下内容为接收##### <xml> <ToUserName><![CDATA[gh_33bb5907f91e]]> <FromUserName><![CDATA[ojLh3jkYtiszyEY-_sM_8yrNxSc4]]> <CreateTime>1363231643</...

    微信时间开发源码

    很好的php微信开发源码以下为xml需要下载详情: <ToUserName><![CDATA[%s]]> <FromUserName><![CDATA[%s]]> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]> <Content><![CDATA[%s]]> <FuncFlag>0 ...

    ASP微信开发者接入代码

    '********************************************** '注意事项 'ASP文件需要以UTF-8的格式保存,否则乱码. ...dim CreateTime '消息创建时间(整型) dim MsgType 'text dim Content '文本消息内容

    PHP实现微信公众平台音乐点播

    1.构造微信提供的XML格式的音乐消息音乐的XML格式是这样的:复制代码 代码如下:<xml> <ToUserName><![CDATA[toUser]]> <FromUserName><![CDATA[fromUser]]> <CreateTime>12345678</CreateTime> ...

    java写微信机器人-Java版微信机器人代码.pdf

    java写微信机器⼈_Java版微信机器⼈代码 public String getContent() { return content; public void setContent(String content) { this.content = content; public String getMessageType() { return messageType;...

    express-wechat-msg:解析微信消息的ExpressJS中间件

    ExpressJS 中间件,用于解析微信消息。 用法 var getRawBody = require ( 'raw-body' ) var wechatMsg = require ( 'wechat-msg' ) app . use ( getRawBody ( ) ) app . use ( wechatMsg ( ) ) app . post ( '/...

    使用Go语言实现微信公众平台

    这个不是全部的代码哦,只是一个演示可以验证跟接受post传过来的消息并且能返回消息,中间的回复逻辑就待需要各位同志们自己写了哈 代码如下: /*  *@go语言实现公众平台  */ package main import (  “crypto/...

    Java微信平台所有的POJO对象和常量

    微信平台中所有的接受信息,发送信息,按钮菜单等POJO对象,还有用到的常量。 下面是个抽象出来的Message父类,下面还有ImageRequestMessage等子类 @XmlRootElement(name = "xml") @XmlAccessorType(XmlAccessType....

    php微信公众号开发之图片回复

    本文实例为大家分享了php微信公众号开发之图片回复的具体代码,供大家参考,具体内容如下 ...随机函数: ... <CreateTime>%s</CreateTime> <MsgType><![CDATA]> <Content><![CDATA[%s]]></C

    微信 开发生成带参数的二维码的实例

    微信开发生成带参数的二维码的讲解 在微信公众号平台开发者那里,在“账号管理”那里,有一项功能是“生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微信公众号上 用...

    asp微信开发者回复代码

    "<CreateTime>"&now&"</CreateTime>" &_ "<MsgType>news</MsgType>" &_ "<ArticleCount>3</ArticleCount>" &_ "<Articles>" &_ "<item>" &_ "百姓厨房服务范围</Title>" &_ "为企业提供专业的、全面的、量身定制的...

    第一篇发展背景和发展目标CreateTime.ppt

    第一篇发展背景和发展目标CreateTime.ppt

    php微信公众号开发之音乐信息

    本文实例为大家分享了php微信公众号音乐信息的具体代码,供大家参考,具体内容如下 高品质—-HQMusicUrl 低品质—-MusicUrl  ... <CreateTime>%s</CreateTime> <MsgType><![CDATA[music]]> <Musi

    微信获取用户地理位置信息的原理与步骤

    在微信公众服务号开发需求中经常有获取用户位置信息的功能,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动。 下面通过给大家介绍微信服务号获取用户位置信息的原理与步骤。 原理 1. 位置信息获取...

    消息中心数据库设计.doc

    群组表(group):id、群组名称、创建人id、创建时间 "字段名称 "类型 "是否为空 "备注 " "id "int "否 "id " "name "nvarchar(50) "否 "群组名称 " "createuser "nvarchar(50) "否 "创建人 " "createtime "datetime...

    基于springboot+jpa实现java后台api接口,点餐系统源码+项目说明(高分毕设).zip

    #### 项目中的sql.txt文档中是创建对应表格所需的sql语句 ## api接口说明文档 #### 一,获取pv访问量 - url:https://30paotui.com/pv/2048/list - 请求方式:get - 返回的json数据如下 ``` { "code": 100, ...

Global site tag (gtag.js) - Google Analytics