Как преобразовать TimeZone из, скажем, UTC в Америку / New_York в NiFi с использованием JavaScript в процессоре ExecuteScript.
Дополнительная информация:
Я знаю, что мы можем это сделатьв процессоре UpdateRecord, который я уже достиг.Но файл слишком большой (20 ГБ +), и я делаю некоторую предварительную обработку в процессоре ExecuteScript, я не хочу повторять весь файл заново.В настоящее время обработка одного файла занимает более 18 часов.Реализация преобразования часового пояса в ExecuteScript, я думаю, значительно сократит время обработки.
Точная точка, в которой я сейчас нахожусь:
В настоящее время я не могу импортировать исоздавать объекты Java, такие как SimpleDateFormat
Код Java, который я пытаюсь реализовать в NiFi ( путем преобразования его в JavaScript ), выглядит следующим образом:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class HelloWorld {
public void convertDateTimeZone() throws Exception{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
TimeZone utcZone = TimeZone.getTimeZone("UTC");
String dateInString = "1982/01/10 10:20:56";
sdf.setTimeZone(utcZone);
Date utcDate = sdf.parse(dateInString); // Create a new Date object
System.out.println(sdf.format(utcDate));
SimpleDateFormat nysdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
TimeZone newyorkZone = TimeZone.getTimeZone("America/New_York");
nysdf.setTimeZone(newyorkZone);
System.out.println(nysdf.format(utcDate));
}
}