strict_date_optional_time
格式对应的java中的时间日期格式为: yyyy-MM-dd'T'HH:mm:ss.SSSZ
或 yyyy-MM-dd
。这个也是最常见的时间日期格式, 其中时区偏移量标识为Z
Z
在某些日期格式下, 在具体的某一日期值后面出现时表示该时间为格林威治时,就是本初子午线所在地的时间"time":"2024-09-04T12:03:10.158+0800"
以下列举了几种不同字母表示时区的用法, 演示为主, 代码执行时最好将案例时间2024-05-18换成您这边执行的当天日期,这样比较容易在discover中去查看, 如果您这边用默认format, 直接看总结就行
America/Los_Angeles
,Asia/Shanghai
等,也可以是Z以及+00:00的时区偏移量的形式# 时区用V表示时,需要用两个大V,我这里时区用|隔开下,原版打算用[]包裹,但是[]应该也是保留内容
DELETE date_format_time_zone_big_v_test
PUT date_format_time_zone_big_v_test
{
"mappings": {
"properties": {
"@timestamp":{
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss|VV"
}
}
}
}
PUT date_format_time_zone_big_v_test/_bulk?refresh
{"create":{}}
{"@timestamp": "2024-05-18T16:00:00|Z","message": "UTC时间16点整"}
{"create":{}}
{"@timestamp": "2024-05-19T00:00:00|+08:00","message": "东八区时间0点整"}
{"create":{}}
{"@timestamp": "2024-05-19T00:00:00|Asia/Shanghai","message": "上海时区0点整"}
# 时区用z表示即zone-name, 与具体时间用|隔开
DELETE date_format_time_zone_small_z_test
PUT date_format_time_zone_small_z_test
{
"mappings": {
"properties": {
"@timestamp":{
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss|z"
}
}
}
}
# UTC和GMT是同一个时区,AWST是澳大利亚时区,因为CST不支持中国标准时的缩写也是古巴或者中部标准时的缩写,所以这边用其他东8区的时区来代替
PUT date_format_time_zone_small_z_test/_bulk?refresh
{"create":{}}
{"@timestamp": "2024-05-20T16:00:00|UTC","timestamp": "2024-05-20T16:00:00","message": "UTC时间16点整"}
{"create":{}}
{"@timestamp": "2024-05-20T16:00:00|GMT","timestamp": "2024-05-20T16:00:00","message": "GMT时间16点整"}
{"create":{}}
{"@timestamp": "2024-05-21T00:00:00|AWST","timestamp": "2024-05-21T00:00:00","message": "东八区/澳大利亚时区0点整"}
localized zone-offset
= zone-name
+offset
GMT+8; GMT+08:00; UTC-08:00;
GMT
可以用,其他时区缩写都解析不了DELETE date_format_time_zone_big_o_test
PUT date_format_time_zone_big_o_test
{
"mappings": {
"properties": {
"@timestamp":{
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss|O"
},
"#timestamp":{
"type": "keyword"
}
}
}
}
# 这里测试了, 好像只有GMT可以用, 其他都解析不出来
PUT date_format_time_zone_big_o_test/_bulk?refresh
{"create":{}}
{"@timestamp": "2024-05-27T16:00:00|GMT+8","#timestamp": "2024-05-27T16:00:00|GMT+8","message": "比GMT时区快8小时的时区的16点,即北京时间16点"}
{"create":{}}
{"@timestamp": "2024-05-27T16:00:00|GMT+08:00","#timestamp": "2024-05-27T16:00:00|GMT+08:00","message": "比GMT时区快8小时的时区的16点,即北京时间16点"}
{"create":{}}
{"@timestamp": "2024-05-27T08:00:00|GMT+0","#timestamp": "2024-05-27T08:00:00|GMT+0","message": "GMT时区的8点"}
zone-offset 'Z' for zero
Z
; -08
; -0830
; -08:30
; -083015
; -08:30:15
;DELETE date_format_time_zone_big_x_test
PUT date_format_time_zone_big_x_test
{
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss|X"
},
"#timestamp": {
"type": "keyword"
}
}
}
}
# 案例上支持很多形式, 但是实测只有这几种可以用
PUT date_format_time_zone_big_x_test/_bulk?refresh
{"create":{}}
{"@timestamp": "2024-05-27T08:00:00|Z","#timestamp": "2024-05-27T08:00:00|Z","message": "0时区8点"}
{"create":{}}
{"@timestamp": "2024-05-27T16:00:00|+08","#timestamp": "2024-05-27T16:00:00|+08","message": "相较于0时区多8小时的所在地区的16点,即上海时间16点"}
{"create":{}}
{"@timestamp": "2024-05-27T16:00:00|+0800","#timestamp": "2024-05-27T16:00:00|+0800","message": "相较于0时区多8小时的所在地区的16点,即上海时间16点"}
+0000; -08; -0830; -08:30; -083015; -08:30:15;
DELETE date_format_time_zone_small_x_test
PUT date_format_time_zone_small_x_test
{
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss|x"
},
"#timestamp": {
"type": "keyword"
}
}
}
}
PUT date_format_time_zone_small_x_test/_bulk?refresh
{"create":{}}
{"@timestamp": "2024-05-27T16:00:00|+08","#timestamp": "2024-05-27T16:00:00|+08","message": "相较于0时区多8小时的所在地区的16点,即上海时间16点"}
{"create":{}}
{"@timestamp": "2024-05-27T16:00:00|+0800","#timestamp": "2024-05-27T16:00:00|+0800","message": "相较于0时区多8小时的所在地区的16点,即上海时间16点"}
{"create":{}}
{"@timestamp": "2024-05-27T16:00:00|+08:00","#timestamp": "2024-05-27T16:00:00|+08:00","message": "相较于0时区多8小时的所在地区的16点,即上海时间16点"}
+0000; -0800; -08:00;
DELETE date_format_time_zone_big_z_test
PUT date_format_time_zone_big_z_test
{
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss|Z"
},
"#timestamp": {
"type": "keyword"
}
}
}
}
PUT date_format_time_zone_big_z_test/_bulk?refresh
{"create":{}}
{"@timestamp": "2024-05-27T08:00:00|+0000","#timestamp": "2024-05-27T16:00:00|+0000","message": "0时区8点"}
{"create":{}}
{"@timestamp": "2024-05-27T16:00:00|+0800","#timestamp": "2024-05-27T16:00:00|+0800","message": "相较于0时区多8小时的所在地区的16点,即上海时间16点"}
T
分隔)的日期字符串。示例: yyyy-MM-dd'T'HH:mm:ss.SSSZ
或 yyyy-MM-dd
。DELETE date_format_strict_date_optional_time_test
PUT date_format_strict_date_optional_time_test
{
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "strict_date_optional_time"
},
"#timestamp": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
}
}
}
}
PUT date_format_strict_date_optional_time_test/_bulk?refresh
{"create":{}}
{"@timestamp": "2024-05-27T08:00:00.000+0000","#timestamp": "2024-05-27T08:00:00.00+0000","message": "0时区8点"}
其他说明:
date类型有其他字段映射参数locale, 这个表示的是对应地区的语言, 比如将星期六理解为Saturday, 用来解析时间字段文本的,和时区无关
文章由牛朝阳本人撰写, 如转载或改编请标注来源
文档内容勘误, 请评论区留言, 欢迎大佬们协助改进指正
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。