所以我有一個大文件(1300萬行)和日期格式爲:
2009-04-08T01:57:47Z
。現在我想將它分成2列,
一個只有日期爲dd-MM-yyyy
和其他與時間只有hh:MM
。在Talend日期列拆分
我該怎麼辦呢?
所以我有一個大文件(1300萬行)和日期格式爲:
2009-04-08T01:57:47Z
。現在我想將它分成2列,
一個只有日期爲dd-MM-yyyy
和其他與時間只有hh:MM
。在Talend日期列拆分
我該怎麼辦呢?
你可以簡單地使用tMap和parseDate/formatDate來做你想做的事。這是既不必要也不建議用正則表達式來實現你自己的日期解析邏輯。
首先,使用格式yyyy-MM-dd'T'HH:mm:ss'Z'
解析時間戳。然後你可以使用解析日期輸出你想要的格式的日期和時間信息:
dd-MM-yyyy
的日期HH:mm
的時間(注:你混了你的問題的情況下,MM
代表當月)如果你把邏輯放到一個TMAP:
你會得到如下:
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'T'HH:mm:ssXXX
來解析您的時間戳。
我猜你的日期時間戳的T和Z部分是Talend倒下的,但這很容易解決。
由於您的日期時間戳處於常規模式,我們可以使用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格式返回字符串。
那麼,你打算用哪種編程語言來解決這個問題? – Jon
Java或Python,我希望它是可靠和快速的......並且在talend數據集成平臺 – sephiroth85
偉大 - 那麼,你到目前爲止嘗試過什麼?你的代碼如何看起來像? 你必須提出一些例子,問題,錯誤信息等 - 否則人們不會幫助你解決你的問題。 – Jon