我想通过使用全局变量将这种格式“yyyy-MM-dd”(例如:2023-09-06)的值类型日期传递给 tSOAP 消息,但不成功。它总是给我这个值
Wed Sep 06 00:00:00 CEST 2023
而不是这个值2023-09-06
。
这是我的工作(测试):
因此,在这项工作中,我将把最后一次执行工作的日期存储在 csv 文件中。然后在作业开始时,我会将此值分配给全局变量,以便可以将其传递给 tSOAP 消息。 这是我在 tJavaFlex_1 中的代码:
// start part of your Java code
System.out.println("Date last update:");
//Déclaration des variables qui stockent la date de dernière update
String str_date_last_update;
Date dat_date_last_update;
//Maintenant on attribue les bonnes valeurs aux variables
str_date_last_update = row8.contenu;
dat_date_last_update = TalendDate.parseDate("yyyy-MM-dd", str_date_last_update);
//Enfin on expose les variables locales commes des variables global pour pouvoir les réutiliser
globalMap.put("dat_date_last_update", dat_date_last_update);
globalMap.put("str_date_last_update", str_date_last_update);
System.out.println("End of file");
System.out.println((String)globalMap.get("str_date_last_update"));
System.out.println((Date)globalMap.get("dat_date_last_update"));
因此,对于代码
System.out.println((String)globalMap.get("str_date_last_update"));
会给我这个值 2023-09-06 而这个代码 System.out.println((Date)globalMap.get("dat_date_last_update"));
给我这个值 Wed Sep 06 00:00:00 CEST 2023 。但我需要传递一个 Date 类型的值,该值是 2023-09-06。因为如果不这样做,我总是会收到不好的回应。
这是我的 tSOAP 消息(简化):
"<soap:Envelope ...
<!--- type date with restriction pattern([0-9]{4}-[0-9]{2}-[0-9]{2}):-->
<LowerBoundaryDate>" +(Date)globalMap.get("dat_date_last_update") + "</LowerBoundaryDate>
<UpperBoundaryDate>2023-09-06</UpperBoundaryDate>
</SelectionByChangedSinceDate>
....
</soap:Envelope>"
我尝试在 tSOAP 消息中传递此代码,但没有成功:
"<soap:Envelope ...
<!--- type date with restriction pattern([0-9]{4}-[0-9]{2}-[0-9]{2}):-->
<LowerBoundaryDate>" + TalendDate.parseDate("yyyy-MM-dd", (String)globalMap.get("str_date_last_update")) + "</LowerBoundaryDate>
<UpperBoundaryDate>2023-09-06</UpperBoundaryDate>
</SelectionByChangedSinceDate>
....
</soap:Envelope>"
您的所有肥皂信封都被评估为字符串(请参阅开始/结束处的双引号)。所以我想在你的元素中传递
((String)globalMap.get("str_date_last_update"))
应该可以解决问题。无需将值作为日期传递。