es日期format_es-sql – 版本5.6.3 – date_format 查询时间格式化使用说明

date_format 在es-sql对应解析成java的SimpleDateFormat 方法

参考ES_sql的代码

private static Tuple date_format(String strColumn, String pattern, String zoneId, String valueName) { String name = “date_format_” + random(); if (valueName == null) { return new Tuple<>(name, “def ” + name + ” = DateTimeFormatter.ofPattern(‘” + pattern + “‘).withZone(” + (zoneId != null ? “ZoneId.of(‘” + zoneId + “‘)” : “ZoneId.systemDefault()”) + “).format(Instant.ofEpochMilli(doc[‘” + strColumn + “‘].value.getMillis()))”); } else { return new Tuple<>(name, strColumn + “; def ” + name + ” = new SimpleDateFormat(‘” + pattern + “‘).format(new Date(” + valueName + ” – 8*1000*60*60))”); } }

网上copy的SimpleDateFormat资料:

import java.text.SimpleDateFormat; import java.util.Date; public class test{ public static void main(String args[]) { Date newTime = new Date(); //设置时间格式 SimpleDateFormat sdf1 = new SimpleDateFormat(“y-M-d h:m:s a E”); SimpleDateFormat sdf2 = new SimpleDateFormat(“yy-MM-dd hh:mm:ss a E”); SimpleDateFormat sdf3 = new SimpleDateFormat(“yyyy-MMM-ddd hhh:mmm:sss a E”); SimpleDateFormat sdf4 = new SimpleDateFormat(“yyyyy-MMMM-dddd hhhh:mmmm:ssss a EEEE”); //获取的时间,是本机的时间 String formatDate1 = sdf1.format(newTime); String formatDate2 = sdf2.format(newTime); String formatDate3 = sdf3.format(newTime); String formatDate4 = sdf4.format(newTime); System.out.println(formatDate1); System.out.println(formatDate2); System.out.println(formatDate3); System.out.println(formatDate4); } }

运行结果:

字符串”yyyy-MM-dd hh:mm:ss”,其中:

yyyy : 代表年(不去区分大小写) 假设年份为 2017

“y” , “yyy” , “yyyy” 匹配的都是4位完整的年 如 : “2017”

“yy” 匹配的是年分的后两位 如 : “15”

超过4位,会在年份前面加”0″补位 如 “YYYYY”对应”02017”

MM : 代表月(只能使用大写) 假设月份为 9

“M” 对应 “9”

“MM” 对应 “09”

“MMM” 对应 “Sep”

“MMMM” 对应 “Sep”

超出3位,仍然对应 “September”

dd : 代表日(只能使用小写) 假设为13号

“d” , “dd” 都对应 “13”

超出2位,会在数字前面加”0″补位. 例如 “dddd” 对应 “0013”

hh : 代表时(区分大小写,大写为24进制计时,小写为12进制计时) 假设为15时

“H” , “HH” 都对应 “15” , 超出2位,会在数字前面加”0″补位. 例如 “HHHH” 对应 “0015”

“h” 对应 “3”

“hh” 对应 “03” , 超出2位,会在数字前面加”0″补位. 例如 “hhhh” 对应 “0003”

mm : 代表分(只能使用小写) 假设为32分

“m” , “mm” 都对应 “32” ,  超出2位,会在数字前面加”0″补位. 例如 “mmmm” 对应 “0032”

ss : 代表秒(只能使用小写) 假设为15秒

“s” , “ss” 都对应 “15” , 超出2位,会在数字前面加”0″补位. 例如 “ssss” 对应 “0015”

E : 代表星期(只能使用大写) 假设为 Sunday

“E” , “EE” , “EEE” 都对应 “Sun”

“EEEE” 对应 “Sunday” , 超出4位 , 仍然对应 “Sunday”

a : 代表上午还是下午,如果是上午就对应 “AM” , 如果是下午就对应 “PM”

其中的分隔符”-“可以替换成其他非字母的任意字符(也可以是汉字),例如:

运行结果为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值