我将日期视为以[30/Sep/2015:08:00:36 -0700]
格式存储的chararray。
test = FOREACH b GENERATE ToDate(SUBSTRING(time,1,12),'dd/MMM/yyyy') AS date;
它为我提供了2015-10-31T00:00:00.000+05:30
根据文档link ToDate(userstring,format)格式的第二个参数是 Java SimpleDateFormat class,因此它应该以datetime格式提供输出30/Sep/2015
。
我将使用该日期进行排序。
答案 0 :(得分:2)
<强>输入强>
<强>脚本强>
A = LOAD 'test12.txt' AS (dt:chararray);
B = FOREACH A GENERATE ToDate(SUBSTRING($0,1,12),'dd/MMM/yyyy');
C = ORDER B BY $0 ASC;
D = FOREACH C GENERATE ToString($0,'dd/MMM/yyyy');
DUMP D;
<强>输出强>
答案 1 :(得分:0)
我在类java.text.SimpleDateFormat(你的链接)中看不到任何ToDate方法。
我已准备好此测试以显示行为的一致性
@Test
public void date()
{
SimpleDateFormat sdf= new SimpleDateFormat("dd/MMM/yyyy");
String v="[30/Sep/2015:08:00:36 -0700]";
try {
Date d=sdf.parse(v.substring(1,12));
System.out.println(sdf.format(d));
} catch (ParseException e) {
e.printStackTrace();
}
}
我的输出是
30 /月/ 2015
希望这可以提供帮助