package com.chickling.util;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import java.util.Date;
/**
* Created by gl08 on 2015/11/30.
*/
public class TimeUtil {
private final static String DATE_FORMAT="yyyy-MM-dd HH:mm:ss";
public final static String LONG_FORMAT_2 = "yyyy-MM-dd HH:mm";
public final static String LONG_FORMAT_3 = "yyyy-MM-dd HH:mm:ss.SSS";
public final static String HDFS_SAVE_FORMAT="yyyy_MM_dd_HH_mm_ss.SSS";
public final static String LONG_FORMAT = "yyyyMMddHHmmss";
public final static String SHORT_FORMAT = "yyyyMMdd";
public final static String SHORT_YEARMONTH_FORMAT = "yyyyMM";
public final static String SHORT_YEAR_FORMAT = "yyyy";
public final static String SHORT_MONTH_FORMAT = "MM";
public final static String SHORT_DAY_FORMAT = "dd";
public final static String HOUR_FORMAT = "HH";
public final static String LONG_FORMAT_1 = "yyyy-MM-dd HH:mm:ss";
public static DateTime String2DateTime(String time){
if(time.isEmpty()){
return parseDate(getCurrentTime(),DATE_FORMAT);
}
else{
return DateTimeFormat.forPattern(DATE_FORMAT).parseDateTime(time);
}
}
public static DateTime parseDate(String dateStr,String formater){
return DateTimeFormat.forPattern(formater).parseDateTime(dateStr);
}
public static String formatDateToStr(Date date , String formater){
if (null==date)return "";
return new DateTime(date).toString(formater);
}
public static String toString(DateTime time){
return time.toString(DATE_FORMAT);
}
public static String getCurrentTime(){
DateTime dt = new DateTime();
return dt.toString(DATE_FORMAT);
}
public static String beforeDate (String period){
DateTime dt =new DateTime();
dt=dt.minusDays(Integer.parseInt(period));
return dt.toString(DATE_FORMAT);
}
public static String getSaveHDFSTime(){
return String.valueOf(new DateTime().getMillis());
}
public static DateTime getUDFDateTime(String time){
return DateTimeFormat.forPattern(LONG_FORMAT_2).parseDateTime(time);
}
public static String getRunTime(DateTime startTime,DateTime stopTime){
return Long.toString((stopTime.getMillis()-startTime.getMillis())/1000);
}
}