package com.monkeyk.os.infrastructure;
import org.apache.commons.lang.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @author Shengzhao Li
*/
public abstract class DateUtils {
/**
* Default time format : yyyy-MM-dd HH:mm:ss
*/
public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
/**
* Time format : yyyy-MM-dd HH:mm
*/
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";
public static final String TIME_FORMAT = "HH:mm";
/**
* Default date format
*/
public static final String DATE_FORMAT = "yyyy-MM-dd";
/**
* Default month format
*/
public static final String MONTH_FORMAT = "yyyy-MM";
/**
* Default day format
*/
public static final String DAY_FORMAT = "dd";
//Date pattern, demo: 2013-09-11
public static final String DATE_PATTERN = "^[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}$";
private DateUtils() {
}
/*
* 判断是否为日期格式,如: 2016-12-12
* */
public static boolean isDate(String dateAsText) {
return StringUtils.isNotEmpty(dateAsText) && dateAsText.matches(DATE_PATTERN);
}
public static Date now() {
return new Date();
}
public static String toDateText(Date date) {
return toDateText(date, DATE_FORMAT);
}
public static String toDateText(Date date, String pattern) {
if (date == null || pattern == null) {
return null;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(date);
}
public static Date getDate(String dateText) {
return getDate(dateText, DATE_FORMAT);
}
public static Date getDate(String dateText, String pattern) {
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
try {
return dateFormat.parse(dateText);
} catch (ParseException e) {
throw new IllegalStateException("Parse date from [" + dateText + "," + pattern + "] failed", e);
}
}
public static String toDateTime(Date date) {
return toDateText(date, DATE_TIME_FORMAT);
}
/**
* Return current year.
*
* @return Current year
*/
public static int currentYear() {
return calendar().get(Calendar.YEAR);
}
public static Calendar calendar() {
return Calendar.getInstance();
}
}