package rfx.server.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
/**
* date time utility class, support parse, format, get unix timestamp
*
* @author Trieu.nguyen
*
*/
public class DateTimeUtil {
public final static String LOG_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
final static String GMT_DATE_TIME_FORMAT = "EEE, MMM d, yyyy hh:mm:ss z";
static final DateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy");
static final DateFormat DATE_NAME_FORMAT = new SimpleDateFormat("yyyy/MM/dd");
static final DateFormat HOUR_NAME_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:00:00");
static final DateFormat DATE_FORMAT_FOR_DB = new SimpleDateFormat("yyyy-MM-dd");
static final DateFormat DATEHOUR_FORMAT = new SimpleDateFormat("yyyy-MM-dd-HH");
static final DateFormat LOG_TIME_FORMATER = new SimpleDateFormat(LOG_TIME_FORMAT);
public static String formatDate(Date d ){
return DATE_FORMAT.format(d);
}
public static String formatDateName(Date d ){
return DATE_FORMAT.format(d);
}
public static String formatHourName(Date d ){
return HOUR_NAME_FORMAT.format(d);
}
public static long getTimestampFromDateHour(String d){
try {
return HOUR_NAME_FORMAT.parse(d).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
public static long getTimestampFromDate(String d){
try {
return DATE_NAME_FORMAT.parse(d).getTime();
} catch (ParseException e) {
System.err.println(d + " getTimestampFromDate " + e.getMessage());
}
return 0;
}
public static int getTimestampFromDate(java.sql.Date d){
if(d != null){
return (int) (d.getTime()/1000);
}
return 0;
}
public static String formatDate(Date d, String format ){
DateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(d);
}
public static String getDateStringForDb(Date d ){
return DATE_FORMAT_FOR_DB.format(d);
}
public static Date parseDateStr(String str){
try {
return DATE_FORMAT.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return new Date();
}
public static synchronized String getDateHourString(Date d ){
return DATEHOUR_FORMAT.format(d);
}
public static int currentUnixTimestamp(){
return (int) (System.currentTimeMillis() / 1000L);
}
public static String getLogTimeString(){
return (new SimpleDateFormat(LOG_TIME_FORMAT)).format(new Date());
}
public static String getGMTDateTimeString() {
SimpleDateFormat sdf = new SimpleDateFormat(GMT_DATE_TIME_FORMAT);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
return sdf.format(new Date());
}
public static String format(String format, Date date){
return (new SimpleDateFormat(format)).format(date);
}
}