Home > Mobile >  NiFi - Convert date in format ISO8601
NiFi - Convert date in format ISO8601

Time:11-23

I need convert the date in NiFi:

2022-11-22 00:00:00

To:

2022-11-22T00:00:00.000Z (ISO 8601)

can someone help me convert this date?

CodePudding user response:

You can use the following spec within a JoltTransformJSON processor presuming that you need a conversion for the current value of an attribute (namely dt nested within a simple JSON object), 2022-11-22 00:00:00 extracted from the variable $now

[
  {
   // reformat by adding the milliseconds option
    "operation": "default",
    "spec": {
        "dt": "${now():format('yyyy-MM-ddHH:mm:ss.SSS')}"
    }
  },
  {
   // split and recombine the pieces of the attribute's value
    "operation": "modify-overwrite-beta",
    "spec": {
      "date": "=substring(@(1,dt),0,10)",
      "time": "=substring(@(1,dt),10,22)",
      "dt":"=concat(@(1,date),'T',@(1,time),'Z')"     
    }
  },
  {
   // pick only theoriginal tag name
    "operation": "shift",
    "spec": {
        "dt": "&"
    }
  }
]

CodePudding user response:

If you (or can) have this info as an attribute, you can use NiFi's expression language to transform it.

For instance, with something like this: ${my_attribute:toDate("yyyy-MM-dd HH:mm:ss", "Europe/Paris"):format("yyyy-MM-dd'T'HH:mm:ss'Z'")}

  • Related