我有以下字符串"2014-12-15 18:20:48"
,但当我解析为datetime时:
A = LOAD 'input.txt' AS (mydate:chararray);
B = FOREACH A GENERATE ToDate(mydate) as datetime;
我收到此错误:
"2014-12-15 18:20:48" is malformed at " 18:20:48"
另外,当我指定格式ToDate(mydate, 'yyyy-MM-dd HH:mm:ss');
时,日期时间将转换为"2014-12-15T18:20:48.000Z"
而不是"2014-12-15 18:20:48"
。我如何解决这个问题,以便给我"2014-12-15 18:20:48"
类型datetime? 最佳答案
如果我们将字符串传递给ToDate函数,则该字符串应为iosstring格式(引用[1])。
ToDate(iosstring)
在第一种情况下,输入字符串不是iosstring格式(缺少T分隔符,表示时间元素的开始)。如果输入字符串是
iosstring格式(引用[1]),它将起作用。
在第二种情况下,您正在调用ToDate的重载方法:
ToDate(用户字符串,格式)
所有ToDate方法的返回类型都是DateTime对象。
如果要获取字符串中的日期,并且需要其他任何格式的日期以进行进一步处理,则必须在ToDate()方法之上使用ToString()方法来获取日期。
所需的格式。
引用:
关于datetime - 解析Pig中的自定义日期时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30181450/