此错误通常是由于ADF试图使用不存在的时区ID进行转换时触发的。为了解决此问题,您需要使用有效的时区ID进行转换。
以下是在ADF中正确使用时区ID的示例代码:
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
inputFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
outputFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
Date date = inputFormat.parse("2021-07-22 09:00:00");
String outputDate = outputFormat.format(date);
System.out.println(outputDate); //2021-07-22 17:00:00
在这个示例中,我们首先将输入格式化程序设置为UTC时区。然后,我们将输出格式化程序设置为上海时区。最后,我们将输入日期解析为日期对象,并使用输出格式化程序将其转换为上海时间。
请注意,TimeZone的ID遵循标准的rFC822时区格式。您可以在这里找到完整的时区ID列表。