Date Talend中拆分的日期列
所以我有一个大文件(1300万行),日期格式为:Date Talend中拆分的日期列,date,talend,Date,Talend,所以我有一个大文件(1300万行),日期格式为: 2009-04-08T01:57:47Z。现在我想把它分成两列, 一个日期仅为dd-MM-yyyy,另一个日期仅为hh:MM 我该怎么做呢?我猜Talend在你的日期时间戳的T和Z部分摔倒了,但这很容易解决 由于您的日期时间戳是常规模式,因此我们可以使用tExtractRegexFields组件轻松地从中提取日期和时间 您需要使用“^([0-9]{4}-[0-9]{2}-[0-9]{2})T([0-9]{2}:[0-9]{2}):[0-9]{2}
2009-04-08T01:57:47Z
。现在我想把它分成两列,一个日期仅为
dd-MM-yyyy
,另一个日期仅为hh:MM
我该怎么做呢?我猜Talend在你的日期时间戳的T和Z部分摔倒了,但这很容易解决 由于您的日期时间戳是常规模式,因此我们可以使用tExtractRegexFields组件轻松地从中提取日期和时间 您需要使用
“^([0-9]{4}-[0-9]{2}-[0-9]{2})T([0-9]{2}:[0-9]{2}):[0-9]{2}Z
作为正则表达式,它将以yyyy-MM-dd格式捕获日期,时间为MM:HH(您需要在模式中用日期字段和时间字段替换日期时间字段)
然后,要将日期格式化为所需格式,您需要使用tMap并使用
TalendDate.formatDate(“dd-MM-yyyy”,TalendDate.parseDate(“yyyy-MM-dd”,row7.date))
以dd-MM-yyyy格式返回字符串。您只需使用tMap和parseDate/formatate即可。没有必要也不建议使用正则表达式实现自己的日期解析逻辑
首先,使用格式yyyy-MM-dd'T'HH:MM:ss'Z'
解析时间戳。然后,您可以使用解析的日期输出所需的格式化日期和时间信息:
- 日期的dd-MM-yyyy
表示时间(注意:您在问题中混淆了情况,HH:mm
表示月份)mm
- 输入:
- 时间戳
2009-04-08T01:57:47Z
- 时间戳
- 输出:
- 日期
08-04-2009
- 时间
01:57
- 日期
yyyy-MM-dd'T'HH:MM:ss'Z'
)解析时间戳时,不会解析时区信息(以“Z”作为文字)。由于许多应用程序无论如何都不会正确设置时区信息,而是始终使用“Z”,因此在大多数情况下可以安全地忽略这一点
如果您需要正确的时区处理,并且能够使用Java 7,您可以使用
yyyy-MM-dd'HH:MM:ssXXX
来解析时间戳。那么,您计划用哪种编程语言来解决这个问题?Java还是Python,我希望它是可靠和快速的…并且在talend数据集成平台内很棒-那么,到目前为止,您尝试了什么?你的代码看起来怎么样?您必须提供一些示例、问题、错误消息等-否则人们不会帮助您解决问题。好的,我尝试在talend中使用tsplit和tmap功能。虽然我就是不能动脑。我使用了一些ETL平台。因此,使用tmap,我得到了TalendDate.formatDate(“dd-MM-yyyy”,row1.timestamp),但当我测试它时,我在线程“main”java.lang中得到了异常。错误:未解决的编译问题:时间戳是“2009-04-08T01:57:47Z”列