ISO日期格式从字符串到日期的转换会出错?
Posted
技术标签:
【中文标题】ISO日期格式从字符串到日期的转换会出错?【英文标题】:Conversion of ISO date format, from string to date,gives error? 【发布时间】:2016-06-28 19:02:30 【问题描述】:我一直在尝试将 ISO 日期格式 ('2016-06-23T20:04:41.914Z') 转换为字符串到日期数据类型。在 Pig Docs 中,有一个函数 ToDate 将字符串转换为日期(@ 987654321@)。 所以我尝试了不同的方式:
1.
b = FOREACH a GENERATE ToDate(status_date,'yyyy-MM-dd hh:mm:ss.SSS);
错误:
原因:java.lang.IllegalArgumentException:无效格式:“2016-06-23T20:04:41.914Z”在“T20:04:41.914Z”格式错误
2.
b = FOREACH a GENERATE ToDate(status_date);
错误:
原因:java.lang.IllegalArgumentException:无效格式:“”
3.
b = FOREACH a GENERATE ToDate(status_date,'yyyy-MM-ddThh:mm:ss.SSSZ');
错误:
原因:java.lang.IllegalArgumentException:非法模式组件:T
如果我遗漏了什么,或者除了编写 udf 和使用 concat 之外还有其他方法,请告诉我。 如果需要任何其他信息,也请告诉我。
【问题讨论】:
第二种方法应该可以,我在我的环境中尝试过它可以正常工作。你能显示 status_date 列的 Dump 的输出吗 【参考方案1】:第二种方法应该可以,你的数据有一些记录字段status_date为空?
【讨论】:
以上是关于ISO日期格式从字符串到日期的转换会出错?的主要内容,如果未能解决你的问题,请参考以下文章
将iso日期格式的字符串转换为毫秒。 ISO日期格式包含(“ yyyy-MM-dd”),并且没有时区