Is it possible to convert Unix epoch timestamp to string timestamp in a particular format using jolt?
{
"event": "CLICK_1",
"time": 1736356629.9767823
}
to
{
"event" : "CLICK_1",
"time": "2025-01-08T17:17:09.976782206Z"
}
Is it possible to convert Unix epoch timestamp to string timestamp in a particular format using jolt?
{
"event": "CLICK_1",
"time": 1736356629.9767823
}
to
{
"event" : "CLICK_1",
"time": "2025-01-08T17:17:09.976782206Z"
}
Share
Improve this question
edited Jan 18 at 16:08
Barbaros Özhan
65.4k11 gold badges36 silver badges61 bronze badges
asked Jan 18 at 12:49
SunnydaysSunnydays
455 bronze badges
3
|
1 Answer
Reset to default 1Yes it's possible after deriving a JSON flowfile-attribute through use of an EvaluateJsonPath processor like :
Then add a JoltTransformJSON processor with the following specification which includes expression language's functions in order to render the attribute(namely time) :
[
{
"operation": "modify-overwrite-beta",
"spec": {
"time0": "${time:toNumber():multiply(1000):formatInstant("yyyy-MM-dd'T'HH:mm:ss", "GMT")}",
"time1": "${time:toString():substring(11,18)}",
"time":"=concat(@(1,time0),'.',@(1,time1),'Z')"
}
},
{//get rid of auxiliary spec. attributes
"operation": "remove",
"spec": {
"time*": ""
}
}
]
Instant.ofEpochSecond(1736356629).with(ChronoField.NANO_OF_SECOND, 9767823);
– g00se Commented Jan 18 at 14:05