背景
记录Java SimpleDateFormat格式转换与ftl各时间格式转换为时间戳
1、Java SimpleDateFormat格式转换
1、2019-11-09 12:40:29
格式类型:yyyy-MM-dd HH:mm:ss
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2、2019-11-25T15:14:02.165、2019-10-25T09:34:46.178+08:00
格式类型:yyyy-MM-dd'T'HH:mm:ss.SSS
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
3、20191111T012812Z
格式类型:yyyyMMdd'T'HHmmss'Z'
new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
2、ftl各时间格式转换为时间戳
1、20191111T012812Z
格式类型:yyyyMMdd'T'HHmmss'Z'
${(time?datetime("yyyyMMdd'T'HHmmss'Z'")?long/1000)?c}
2、2019-11-09 12:40:29
格式类型:yyyy-MM-dd HH:mm:ss
${(time?date("yyyy-MM-dd HH:mm:ss")?long/1000)?c}
3、2019-10-25T09:34:46.178+08:00
格式类型:"yyyy-MM-dd'T'HH:mm:ss
${(time?datetime("yyyy-MM-dd'T'HH:mm:ss")?long/1000)?c}
4、1585669818598毫秒转秒
此时数值为long类型
${((timestamp_long?number_to_datetime)?string?date("yyyy-MM-dd HH:mm:ss")?long/1000)?c}
解析:先将long类型的时间戳转换为datetime(默认格式会转为yyyy-MM-dd HH:mm:ss),再转为string,后转datetime。之后转long,除1000转为秒。