freemaker String类型的时间戳转日期
来源:互联网 发布:网络监控手机客户端 编辑:程序博客网 时间:2024/05/16 02:51
用过freemaker的同志可能都遇到过这个问题,但不一定知道原因。毕竟都是踩过坑的人,还是要分享点干货出来避免大家掉一个坑里。
一、问题如何出现?
这是在接通微信公众号向粉丝推送消息时出现的问题。微信有多少坑我就不一一细说了。(ps:并没有黑我大腾讯)。
通过获取successToken,然后用successToken获取粉丝信息。返回值中有一个字段:
subscribe_time,这个是mysql表字段中的命名,我为了方便解析直接用了varchar类型,实体类为String。(并没有考虑到需要将字段使用freemaker显示到页面)。然后用普通的方式渲染数据。结果异常开始。
解决方案:
一、${*****?string("yyyy-MM-dd HH:mm:ss")}
这种类型只能用在处理"2017-08-20 20:19:01",是整个String类型。
结果:
freemaker抛出异常。。
二、${**.**?date};${**.**?datetime}
结果还是一样。。。怎么办,我们来分析原因:
首先 String str="1501640352",他是时间戳类型,我尝试先将其转换为long类型:
<#assign dlong = u.subscribe_time?number/>
${u.subscribe_time?number_to_datetime!}
如果看不懂assign的同学请自行百度。
打印出来看下这样:
这次没有抛出异常,但结果是1970····
这样就有点尴尬了。。。把时间戳拿去站长工具里面转换又是2017····
再细想一下,如果是unix生成的时间戳是精确到秒级的,而java是精确到毫秒级的,如果我将时间戳转为long再*1000是否有效?实验:
<#assign dlong = u.subscribe_time?number * 1000 />
${dlong?number_to_datetime}
结果:
2017····
大功告成!
其实freemaker很强大的,可以在.java文件里定义方法然后通过配置文件调用。必要时可以配置一下调用后台的方法
- freemaker String类型的时间戳转日期
- 获取String类型的日期和时间
- String 类型 日期时间大小的比较
- Flex String类型的日期时间给日期组件赋值
- 检查 string 类型的日期和时间是否合法的函数。
- C# string格式的日期时间字符串转为DateTime类型
- C# string格式的日期时间字符串转为DateTime类型
- C# string格式的日期时间字符串转为DateTime类型
- C# string格式的日期时间字符串转为DateTime类型
- C# string格式的日期时间字符串转为DateTime类型
- 日期转string类型
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- 一个疑问?多线程,NIO,普通IO复制同一个文件
- 欢迎使用CSDN-markdown编辑器
- win10回复误删的原生应用(以应用商店为例)
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- Android数据解析JSON解析之GSON解析
- freemaker String类型的时间戳转日期
- function pointer reinterpret_cast
- AndroidStudio Gradle简要配置说明
- Markdown
- popwindow收藏修改删除的主类
- 绘制线条与条形图的python脚本实例源码
- Period(KMP算法)
- [Azure]ARM模式托管磁盘的快照与还原[1]——创建与查看
- ViewPager设置焦点的问题