Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime Apache Nifi表达式语言-toDate格式_Datetime_Apache Nifi - Fatal编程技术网

Datetime Apache Nifi表达式语言-toDate格式

Datetime Apache Nifi表达式语言-toDate格式,datetime,apache-nifi,Datetime,Apache Nifi,我正在尝试使用ApacheNIFI表达式语言和替换文本处理器regex格式化日期字符串。给定一个日期字符串 date_str : "2018-12-05T11:44:39.717+01:00", 我希望将此转换为: correct_mod_date_str: "2018-12-05 10:44:39.717", 请注意日期是如何转换为UTC的,字符“T”被空格替换 为此,我目前正在使用: toDate("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX"):format("

我正在尝试使用ApacheNIFI表达式语言和替换文本处理器regex格式化日期字符串。给定一个日期字符串

date_str : "2018-12-05T11:44:39.717+01:00", 
我希望将此转换为:

correct_mod_date_str: "2018-12-05 10:44:39.717", 
请注意日期是如何转换为UTC的,字符“T”被空格替换

为此,我目前正在使用:

toDate("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX"):format("yyyy-MM-dd HH:mm:ss.SSS", '+00:00')
这是完美的

但是,当日期字符串的单位为6位(毫秒)而不是3位时,会出现以下情况:

another_date_str: "2018-12-05T11:44:39.717456+01:00"
转换为:

incorrect_mod_date_str: "2018-12-05 10:56:36.456"
ms精度中的前3位似乎会干扰转换

感谢您为解决此问题提供的帮助-我缺少什么


这似乎是java的一个限制。

根据java文档,不支持超过3毫秒的数字

最简单的方法是删除额外的数字,如下所示:

属性:replaceAll'\.\d{3}\d*,“$1”:toDateyyyy-MM-dd'T'HH:MM:ss.SSSXXX:formatyyy-MM-dd HH:MM:ss.SSS,+00:00'
这似乎是java的一个限制。

根据java文档,不支持超过3毫秒的数字

最简单的方法是删除额外的数字,如下所示:

属性:replaceAll'\.\d{3}\d*,“$1”:toDateyyyy-MM-dd'T'HH:MM:ss.SSSXXX:formatyyy-MM-dd HH:MM:ss.SSS,+00:00'