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)