forked from le-zw/nifi-sample-scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatetime.js
More file actions
29 lines (22 loc) · 1.26 KB
/
datetime.js
File metadata and controls
29 lines (22 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 使用 Java SimpleDateFormat (Java 8) 格式化 date/time
var flowFile = session.get();
if (flowFile !== null) {
var StreamCallback = Java.type("org.apache.nifi.processor.io.StreamCallback");
var IOUtils = Java.type("org.apache.commons.io.IOUtils");
var StandardCharsets = Java.type("java.nio.charset.StandardCharsets");
var SimpleDateFormat = Java.type("java.text.SimpleDateFormat")
var TimeZone = Java.type("java.util.TimeZone")
flowFile = session.write(flowFile, new StreamCallback(function(inputStream, outputStream) {
var inputDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
var utcZone = TimeZone.getTimeZone("UTC")
inputDateFormat.setTimeZone(utcZone)
var outputDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
var outputZone = TimeZone.getTimeZone("America/New_York")
outputDateFormat.setTimeZone(outputZone)
var inputDateTime = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
var utcDate = inputDateFormat.parse(inputDateTime)
var outputDateTime = outputDateFormat.format(utcDate)
IOUtils.write(outputDateTime, outputStream, StandardCharsets.UTF_8)
}));
session.transfer(flowFile, REL_SUCCESS);
}