在猪中将 12 小时制日期时间转换为 24 小时制?

Convert 12 hr format Date time to 24 hour in pig?

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: Invalid format: "02/07/2016 12:43:23.324 PM" is malformed at "16 12:43:23.324 PM"

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

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;

下面是有效的 example.The 输入 4 个日期采用 'dd/MM/yyyy hh:mm:ss.SSS aa' 格式。

输入

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

脚本

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;

输出