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 格式的 Pandas 日期时间转换

将iso日期格式的字符串转换为毫秒。 ISO日期格式包含(“ yyyy-MM-dd”),并且没有时区

将日期对象转换为ISO 8601格式的字符串

如何在php中将ISO8601转换为日期格式

从 Jquery 到 C# Web API 传递和处理英国日期格式

将时区偏移量(ISO 8601 格式)添加到原始日期时间