hive转比较特殊的日期格式

日期类型为:Sun Mar 9 21:16:18 2014  星期几 月份 天

from_unixtime(unix_timestamp('Sun Mar 9 21:16:18 2014','EEE MMM dd HH:mm:Ss z yyyy'),'yyyy-MM-dd HH:mm:Ss')
EEE代表星期几
MMM代表月的英文名称
这样写还是有点问题,不能指定 Locale.US 得封装成udf函数。参考如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
 
public class Test {
 
    public static void main(String[] args) {
        String str = "Mon Dec 31 00:00:00 CST 2012";
        Date date = parse(str, "EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
        System.out.printf("%tF %<tT%n", date);
    }
 
    public static Date parse(String str, String pattern, Locale locale) {
        if(str == null || pattern == null) {
            return null;
        }
        try {
            return new SimpleDateFormat(pattern, locale).parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
 
    public static String format(Date date, String pattern, Locale locale) {
        if(date == null || pattern == null) {
            return null;
        }
        return new SimpleDateFormat(pattern, locale).format(date);
    }
}




你可能感兴趣的:(hive转比较特殊的日期格式)