NiFi 如何在日期中添加月份
NiFi How to Add Months to a Date
我知道可以在日期上增加毫秒以增加天数或周数:
https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#now
但是由于月份的长度不同,所以这行不通。如何给NiFi的now()函数增加6个月?
不幸的是,仅使用表达式语言可靠地执行此操作(正如您所指出的)并不理想。
最可靠的方法是:
- UpdateAttribute 使用
${now()}
设置新属性
- 执行Groovy脚本用一段简单的Groovy来
- 获取属性
- 使用Groovy date/time 函数安全地添加到日期
- 设置属性值
Cookbook Part 1 介绍了如何使用 FF 属性。
例如
flowFile = session.get()
if(!flowFile) return
my_date = flowFile.getAttribute('my_date')
// Modify your date here
flowFile = session.putAttribute(flowFile, 'my_date', my_date)
此代码从名为 'date_original' 的属性中减去 60 天并添加具有新日期的新属性
flowFile = session.get()
if(!flowFile) return
formatoAccettato = "yyyy-MM-dd"
dataOriginale = flowFile.getAttribute('data_originale')
dataOriginaleDate = Date.parse(formatoAccettato, dataOriginale)
sottrazione = dataOriginaleDate - 60
dataSottratta = sottrazione.format(formatoAccettato)
flowFile = session.putAttribute(flowFile, 'data_modificata', dataSottratta)
session.transfer(flowFile, REL_SUCCESS)
我知道可以在日期上增加毫秒以增加天数或周数:
https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#now
但是由于月份的长度不同,所以这行不通。如何给NiFi的now()函数增加6个月?
不幸的是,仅使用表达式语言可靠地执行此操作(正如您所指出的)并不理想。
最可靠的方法是:
- UpdateAttribute 使用
${now()}
设置新属性
- 执行Groovy脚本用一段简单的Groovy来
- 获取属性
- 使用Groovy date/time 函数安全地添加到日期
- 设置属性值
Cookbook Part 1 介绍了如何使用 FF 属性。
例如
flowFile = session.get()
if(!flowFile) return
my_date = flowFile.getAttribute('my_date')
// Modify your date here
flowFile = session.putAttribute(flowFile, 'my_date', my_date)
此代码从名为 'date_original' 的属性中减去 60 天并添加具有新日期的新属性
flowFile = session.get()
if(!flowFile) return
formatoAccettato = "yyyy-MM-dd"
dataOriginale = flowFile.getAttribute('data_originale')
dataOriginaleDate = Date.parse(formatoAccettato, dataOriginale)
sottrazione = dataOriginaleDate - 60
dataSottratta = sottrazione.format(formatoAccettato)
flowFile = session.putAttribute(flowFile, 'data_modificata', dataSottratta)
session.transfer(flowFile, REL_SUCCESS)