/*
* Created by LuaView.
* Copyright (c) 2017, Alibaba Group. All rights reserved.
*
* This source code is licensed under the MIT.
* For the full copyright and license information,please view the LICENSE file in the root directory of this source tree.
*/
package com.taobao.luaview.util;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Util for Handling Time or Date
*
* @author MonsterStorm
* @version 1.0
*/
public class DateUtil {
/**
* default date time format "yyyy-MM-dd HH:mm:ss"
*/
public static final String DATE_FORMAT_DEFAULT = "yyyy-MM-dd HH:mm:ss";
/**
* default Chinese date time format (in 24 hours format) "yyyy年MM月dd日 HH时mm分ss秒"
*/
public static final String DATE_FORMAT_CN_24 = "yyyy年MM月dd日 HH时mm分ss秒";
/**
* default Chinese date time format (in 12 hours format) "yyyy年MM月dd日 hh时mm分ss秒"
*/
public static final String DATE_FORMAT_CN_12 = "yyyy年MM月dd日 hh时mm分ss秒";
/**
* default Chinese date time format in short (and in 24 hours format ) "yy年MM月dd日 HH时mm分ss秒"
*/
public static final String DATE_FORMAT_CN_24_SHORT = "yy年MM月dd日 HH时mm分ss秒";
public static final String DATE_FORMAT_CN_24_SHORT_ENG = "yyMMddHHmmss";
/**
* default Chinese date time format in short (and in 12 hours format ) "yy年MM月dd日 hh时mm分ss秒"
*/
public static final String DATE_FORMAT_CN_12_SHORT = "yy年MM月dd日 hh时mm分ss秒";
/**
* one second in milliseconds
*/
public static final long ONE_SECOND = 1000;
/**
* one minute in milliseconds
*/
public static final long ONE_MINUTE = 60 * ONE_SECOND;
/**
* one hour in milliseconds
*/
public static final long ONE_HOUR = 60 * ONE_MINUTE;
/**
* one day in milliseconds
*/
public static final long ONE_DAY = 24 * ONE_HOUR;
/**
* format a string, return default formatted string (yyyy-MM-dd HH:mm:ss)
*
* @param date
* @return
*/
public static String format(final Long date) {
if (date != null) {
return format(new Date(date), DATE_FORMAT_DEFAULT);
} else {
return getCurrent();
}
}
/**
* format a string, return default formatted string (yyyy-MM-dd HH:mm:ss)
*
* @param date
* @return
*/
public static String format(final Long date, final String format) {
if (date != null) {
return format(new Date(date), format);
} else {
return getCurrent(format);
}
}
/**
* format a string, return default formatted string (yyyy-MM-dd HH:mm:ss)
*
* @param date
* @return
*/
public static String format(final Date date) {
if (date != null) {
return format(date, DATE_FORMAT_DEFAULT);
} else {
return getCurrent();
}
}
/**
* 格式化时间串,返回给定格式的串
*
* @param date
* @param format
* @return
*/
public static String format(final Date date, final String format) {
if (date != null) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
return sdf.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return date.toString();
} else {
return getCurrent(format);
}
}
/**
* build date time string according given date and default format
*
* @param date
* @return
*/
public static Date parse(final String date) {
return parse(date, DATE_FORMAT_DEFAULT);
}
/**
* build date time according given date and format
*
* @param date
* @param format
* @return
*/
public static Date parse(final String date, final String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
return sdf.parse(date);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* get current date in default format
*
* @return
*/
public static String getCurrent() {
return getCurrent(DATE_FORMAT_DEFAULT);
}
/**
* get current date in given format
*
* @return
*/
public static String getCurrent(final String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(new Date());
}
/**
* get current date in milliseconds
*
* @return
*/
public static Long getCurrentTime() {
return System.currentTimeMillis();
}
}