问题描述
我是新手,可以使用它来将数据提取到Elasticsearch。我有一个名为request_time的字段,其值是:110820120501,格式为[ddmmyyHHMMSS]。如何将其转换为日期字段。
这是我写的,但是没有用。任何帮助表示赞赏。
request_time值示例:100820015642
<filter>
@type record_transformer
enable_ruby true
<record>
request_time ${ require 'date'; DateTime.strptime('request_time','%d%m%y%H%M%S')}
</record>
</filter>
我也尝试了以下方法:
<filter>
@type record_transformer
enable_ruby true
<record>
time ${require 'date'; DateTime.parse('request_time').strftime('%d%m%y%H%M%S')}
</record>
</filter>
如何将request_time作为日期字段存储,该日期字段覆盖有例如一个值。 “ request_time”:“ 2020-08-11T11:24:23.000 + 0100”?
解决方法
请尝试以下代码段。我已经给出了毫秒精度,但是请随时根据您的需要进行调整。
<filter>
@type record_transformer
enable_ruby true
<record>
date ${Time.at(record['request_time'].to_i/1000,record['request_time'].to_i%1000*1000).utc.strftime('%Y-%m-%dT%H:%M:%S.%LZ')}
</record>
</filter>