将12小时格式转换为猪日期时间为24小时?

时间:2016-07-18 11:26:13

标签: datetime apache-pig date-format

02/07/2016 12:43:23.324 PM   
mm/dd/yyyy hh:mm:ss.SSS AM/PM    -current format 12 hr 

请帮助将其转换为猪的24小时格式...

HDFS中的文件

02/07/2016 12:43:23.324 PM
03/08/2016 08:12:15.123 AM

猪的命令:

date_data = LOAD 'hdfs path' as (date: chararray);

todate_data = foreach date_data generate ToDate(date,'yyyy/MM/dd HH:mm:ss.SSS');

dump todate_data;

给出以下例外。

  

java.lang.IllegalArgumentException:格式无效:“02/07/2016 12:43:23.324 PM”格式错误于“16 12:43:23.324 PM”

1 个答案:

答案 0 :(得分:1)

您必须指定输入的格式。例如,您的数据位于' MM / dd / yyyy hh:mm:ss.SSS aa' format。使用以下脚本。

date_data = LOAD 'hdfs path' as (date: chararray);
todate_data = foreach date_data generate ToDate(date,'MM/dd/yyyy hh:mm:ss.SSS aa');
dump todate_data;

下面是一个工作示例。输入4日期在< dd / MM / yyyy hh:mm:ss.SSS aa'格式。

<强> INPUT

30/06/2016 02:43:23.324 PM
01/12/2016 12:43:23.324 AM
21/08/2016 06:43:23.324 PM
13/07/2016 12:43:23.324 AM

<强> SCRIPT

A = LOAD 'test4.txt' AS (create_dt:chararray);
B = FOREACH A GENERATE ToDate(create_dt,'dd/MM/yyyy hh:mm:ss.SSS aa') AS create_dt;
DUMP B;

<强>输出

enter image description here