我有一个要求,日期差异应该根据输入日期和当前日期在 Talend java平台中计算。 在那种情况下,我可以使用 TalendDate.diffDate(date1,date2):long 方法,其中date1和date2的类型为日期
所以我可以在我自己的方法中调用该方法,
public static long findDateDiff(Date date2){
Date date1 = new Date(); //current date of format Fri Feb 23 09:37:33 IST 2018
// date2 format is 'dd/MM/yyyy'
long diff = TalendDate.diffDate(date1,date2);
return diff
}
此处,参数date2的类型为日期和格式' dd / MM / yyyy'。但是当我得到当前日期时,它的格式不同,所以我在传递不同格式的日期方面遇到了麻烦。
如何将当前日期格式转换为' dd / MM / yyyy'进入相同的变量date2?
日期date1 =新日期(); //格式的当前日期Fri Feb 23 09:37:33 IST 2018 String sDate = new SimpleDateFormat.format(date1); //仅返回String格式
如果我使用上面的方法 SimpleDateFormat.format(Date),它会返回一个 String 值,如何将值传递给diffDate(date1,date2)两个参数类型都是Date?
所以我只需要将当前日期转换为指定的格式并将结果存储到相同的Date变量中,而不是将其作为字符串。
请帮我解决这个问题。提前谢谢。
答案 0 :(得分:0)
这是Talend的主题之一,它一再出现有很多原因。
如前所述,实际Date
仅包含数值,格式不同,并且未与日期值相关联。您正在Talend中使用日期函数,只需确保两个值都是实际日期(如果需要,解析一个字符串)。采用正确的数据类型将有很大帮助。
由于这种情况经常发生,I created an article about this topic。