Apache pig Pig脚本toDate转换问题导致不同的输出

Apache pig Pig脚本toDate转换问题导致不同的输出,apache-pig,bigdata,Apache Pig,Bigdata,如何使用PIG转换日期和时间?我正在尝试转换而不是转换为24小时格式的输入值 30/06/2016 02:43:23下午 2016年12月1日12:43:23上午 通过ToDate($0,'dd/MM/yyyy hh:MM:ss aa')后 结果是 30/06/2016 02:43:23.324+05:30 2016年12月1日12:43:23+05:30 但预期的结果是 30/06/2016 14:43:23 2016年12月1日12:43:23 有谁能帮我一下吗?参考:ToDate的返回类型

如何使用PIG转换日期和时间?我正在尝试转换而不是转换为24小时格式的输入值

30/06/2016 02:43:23下午
2016年12月1日12:43:23上午

通过
ToDate($0,'dd/MM/yyyy hh:MM:ss aa')后
结果是

30/06/2016 02:43:23.324+05:30
2016年12月1日12:43:23+05:30

但预期的结果是

30/06/2016 14:43:23
2016年12月1日12:43:23

有谁能帮我一下吗?参考:ToDate的返回类型是DateTime对象

要将字符日期转换为任何其他格式,则必须在获取DateTime对象后使用ToString()函数

输入:a.csv

30/06/2016 02:43:23 PM
01/12/2016 12:43:23 AM
清管器脚本:

adataset = LOAD 'a.csv' USING PigStorage(',') AS (display_date:chararray);
req = FOREACH adataset GENERATE ToString(ToDate(display_date,'dd/MM/yyyy hh:mm:ss a'),'yyyy/MM/dd HH:mm:ss'); 
DUMP req;

穆拉里非常感谢你的帮助…它工作得很好!!!!!是否可以将日期时间(如30/06/16 02:43:23 PM 01/12/17 12:43:23 AM)转换为(30/06/2016 14:43:23)(01/12/2016 00:43:23)@dass:您必须相应地指定格式,请选中-以了解如何指定格式。对于您的示例,dd/MM/yy应该可以工作。我必须分别获取日期、年、月和分钟、秒、hh,以需要更改日期时间的格式yyy-MM-dd hh:MM:ss,我已经完成了拆分字符串get,这会进入其他关系???是否可以执行相同的生成语句。请在下面的注释中找到我试图做的相同代码complete=foreach tmp{date=ToDate($8,'MM/dd/yyyy HH:MM:ss');year=(chararray)ABS(GetYear(date));month=(chararray)ABS(GetMonth(date));day=(chararray)ABS(GetDay(date));hour=(chararray)ABS(GetHour(date));min=(chararray)ABS(GetMinute)(GetMinute));sec=(chararray)ABS(GetSecond(date));生成$0,CONCAT(CONCAT(CONCAT)(CONCAT(年),-),CONCAT(月),-day),CONCAT(“”,CONCAT(CONCAT(小时,,:'),CONCAT(分钟,,:')),sec)),$33,$22,$2,$3,$17,$18,$21;@dass:如果需要-作为分隔符,然后以ToString方法的格式指定相同的内容。检查更新的答案。