Date Talend日期和时间组合
我合并了两列;日期和时间。当我通过热编码传递日期和时间时,它工作正常,但当我通过一列传递时,它抛出错误: 不可上诉日期:“1992年5月5日” 我已经试过了:Date Talend日期和时间组合,date,time,concatenation,talend,unparseable,Date,Time,Concatenation,Talend,Unparseable,我合并了两列;日期和时间。当我通过热编码传递日期和时间时,它工作正常,但当我通过一列传递时,它抛出错误: 不可上诉日期:“1992年5月5日” 我已经试过了: MaterialCodeCSV.xdate == null ? TalendDate.parseDate("yyyy-MM-dd HH:mm:ss", TalendDate.getDate("yyyy-MM-dd HH:mm:ss")) : TalendDate.parseDateLocale("yyyy/mm/dd HH:mm:ss
MaterialCodeCSV.xdate == null ?
TalendDate.parseDate("yyyy-MM-dd HH:mm:ss", TalendDate.getDate("yyyy-MM-dd HH:mm:ss")) :
TalendDate.parseDateLocale("yyyy/mm/dd HH:mm:ss",MaterialCodeCSV.xdate.toString() + MaterialCodeCSV.xtime.toString(),"EN");
Talend中的Java代码:
如果使用错误的数据类型,日期处理可能会有点棘手。我假设您要填写一个日期为
的字段。这种方式有几个错误:
MaterialCodeCSV.xdate == null ?
TalendDate.parseDate("yyyy-MM-dd HH:mm:ss", TalendDate.getDate("yyyy-MM-dd HH:mm:ss")) :
TalendDate.parseDateLocale("yyyy/mm/dd H:mm:ss",MaterialCodeCSV.xdate.toString()+ MaterialCodeCSV.xtime.toString(),"EN");
- 如果
materialcodesv.xdate==null
您创建了一个日期并立即再次解析它?这似乎是不必要的复杂和低效。将其更改为TalendDate.getCurrentDate()
- 然后,如果
xdate
不为空,您只需连接xdate
和xtime
,使用toString()
并尝试解析它。同样,这似乎是不必要的复杂。如果我假设now和xdate
和xtime
已经是Date
字段,您可以这样写:materialdecsv.xdate+materialdecsv.xtime
李>
- 如果两者都是
String
字段,则必须确保xdate
的格式为yyyy/MM/dd
,xtime
的格式为HH:MM:ss
。然后可以排除.toString()
- 此外,如果两个字段都是
字符串
字段,则必须添加一个额外的空格:MaterialCodeCSV.xdate+''+MaterialCodeCSV.xtime
- 此外,在第一种情况下,使用
yyyy-MM-dd HH:MM:ss
进行解析。在第二种情况下,使用yyyy/mm/ddh:mm:ss
进行解析。上面写着“年/分钟/天”。此外,只有一个小时数字,不允许解析9:59:59点之后的任何内容。您应该正确地使用yyyy/MM/dd HH:MM:ss
李>
因此,总结起来应该是这样的(如果我假设正确,并且您正在为xdate
和xtime
使用格式正确的String
字段):
“MaterialDecsv.xtime”列中的所有日期是否具有相同的格式“01/01/2000”?那么这个专栏是什么类型的呢?非常感谢你的简要解释,它非常有帮助
MaterialCodeCSV.xdate == null ?
TalendDate.getCurrentDate() :
TalendDate.parseDateLocale("yyyy/MM/dd HH:mm:ss", MaterialCodeCSV.xdate + ' ' + MaterialCodeCSV.xtime,"EN");