📄 dateformatutils.java
字号:
/**
* 时间及时间格式处理
* */
package com.lianjiping.democ;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
public class DateFormatUtils {
//系统默认日期格式
public static final String DATE_FORMAT = "yyyy-MM-dd";
//系统默认日期时间格式
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
//8位日期格式
public static final String DATE_FORMAT_8 = "yyyyMMdd";
//14位日期时间格式
public static final String DATE_TIME_FORMAT_14 = "yyyyMMddHHmmss";
public final static String YEAR = "year";
public final static String MONTH = "month";
public final static String DAY = "day";
public final static String WEEK = "week";
public final static String HOUR = "hour";
public final static String MINUTE = "minute";
public final static String SECOND = "second";
//判断参数是否等于空
private static boolean checkPara(Object para) {
if (null == para || "".equals(para)) {
return true;
} else {
return false;
}
}
//获得系统的当前时间(毫秒)
public static long getCurrentTimeMillis() {
return System.currentTimeMillis();
}
//获得系统的当前时间
public static Date getCurrentDate() {
// return new Date(System.currentTimeMillis());
return new Date(getCurrentTimeMillis());
}
//获得系统的当前日期(默认格式)
public static String getCurrentFormatDate() {
Date currentDate = getCurrentDate();
SimpleDateFormat dateFormator = new SimpleDateFormat(
DateFormatUtils.DATE_FORMAT);
return dateFormator.format(currentDate);
}
//获得系统的当前日期时间(默认格式)
public static String getCurrentFormatDateTime() {
Date currentDate = getCurrentDate();
SimpleDateFormat dateFormator = new SimpleDateFormat(
DateFormatUtils.DATE_TIME_FORMAT);
return dateFormator.format(currentDate);
}
//获得系统的当前日期时间(指定格式返回)
public static String getCurrentCustomFormatDateTime(String pattern) {
if (checkPara(pattern)) {
return "";
}
Date currentDate = getCurrentDate();
SimpleDateFormat dateFormator = new SimpleDateFormat(pattern);
return dateFormator.format(currentDate);
}
//输入日期(指定格式返回)
public static String formatDate(Date date, String pattern) {
if (checkPara(pattern) || checkPara(date)) {
return "";
}
SimpleDateFormat dateFormator = new SimpleDateFormat(pattern);
return dateFormator.format(date);
}
//输入日期(指定格式返回)
public static String formatDate(Date date, String pattern, Locale locale) {
if (checkPara(pattern) || checkPara(date)) {
return "";
}
if (checkPara(locale)) {
locale = Locale.getDefault();
}
SimpleDateFormat dateFormator = new SimpleDateFormat(pattern, locale);
String customFormatDate = dateFormator.format(date);
return customFormatDate;
}
//将时间字符串按照默认格式(DATE_FORMAT = "yyyy-MM-dd")转换为Date
public static Date parseStrToDate(String dateStr) {
if (checkPara(dateStr)) {
return null;
}
SimpleDateFormat dateFormator = new SimpleDateFormat(
DateFormatUtils.DATE_FORMAT);
Date resDate = dateFormator.parse(dateStr, new ParsePosition(0));
return resDate;
}
//将时间字符串按照默认格式(DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss")转换为Date
public static Date parseStrToDateTime(String dateStr) {
if (checkPara(dateStr)) {
return null;
}
SimpleDateFormat dateFormator = new SimpleDateFormat(
DateFormatUtils.DATE_TIME_FORMAT);
Date resDate = dateFormator.parse(dateStr, new ParsePosition(0));
return resDate;
}
//将时间字符串按照默认格式(DATE_FORMAT = "yyyy-MM-dd")转换为Calender
public static Calendar parseStrToCalendar(String dateStr) {
if (checkPara(dateStr)) {
return null;
}
SimpleDateFormat dateFormator = new SimpleDateFormat(
DateFormatUtils.DATE_TIME_FORMAT);
Date resDate = dateFormator.parse(dateStr, new ParsePosition(0));
Locale locale = Locale.getDefault();
Calendar cal = new GregorianCalendar(locale);
cal.setTime(resDate);
return cal;
}
//将日期字符串转换成日期时间字符串
public static String parseDateStrToDateTimeStr(String dateStr) {
if (checkPara(dateStr)) {
return "";
}
SimpleDateFormat dateFormator = new SimpleDateFormat(
DateFormatUtils.DATE_FORMAT);
Date resDate = dateFormator.parse(dateStr, new ParsePosition(0));
return formatDate(resDate, DateFormatUtils.DATE_TIME_FORMAT);
}
//将时间或者时间日期字符串按照指定格式转换为Date
public static Date parseStrToCustomPatternDate(String dateStr,
String pattern) {
if (checkPara(pattern) || checkPara(dateStr)) {
return null;
}
SimpleDateFormat dateFormator = new SimpleDateFormat(
pattern);
Date resDate = dateFormator.parse(dateStr, new ParsePosition(0));
return resDate;
}
//将时间字符串从一种格式转换成另一种格式
public static String convertDatePattern(String dateStr,
String patternFrom,
String patternTo) {
if (checkPara(patternFrom) || checkPara(patternTo) || checkPara(dateStr)) {
return "";
}
SimpleDateFormat dateFormator = new SimpleDateFormat(
patternFrom);
Date resDate = dateFormator.parse(dateStr, new ParsePosition(0));
return formatDate(resDate, patternTo);
}
//日期天数增加
public static Date addDays(Date date, int days) {
if (checkPara(date)) {
return null;
}
if (0 == days) {
return date;
}
Locale loc = Locale.getDefault();
Calendar cal = new GregorianCalendar(loc);
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH, days);
return cal.getTime();
}
//日期天数减少
public static Date minusDays(Date date, int days) {
return addDays(date, (0 - days));
}
//按时间格式相加
//dateStr 原来时间 / pattern 时间格式
public static String addDate(String dateStr, String pattern,
String type, int count) {
if (checkPara(dateStr) || checkPara(pattern) || checkPara(type)) {
return "";
}
if (0 == count) {
return dateStr;
}
Date date = parseStrToCustomPatternDate(dateStr, pattern);
Locale loc = Locale.getDefault();
Calendar cal = new GregorianCalendar(loc);
cal.setTime(date);
if (DateFormatUtils.YEAR.equals(type)) {
cal.add(Calendar.YEAR, count);
} else if (DateFormatUtils.MONTH.equals(type)) {
cal.add(Calendar.MONTH, count);
} else if (DateFormatUtils.DAY.equals(type)) {
cal.add(Calendar.DAY_OF_MONTH, count);
} else if (DateFormatUtils.WEEK.equals(type)) {
cal.add(Calendar.WEEK_OF_MONTH, count);
} else if (DateFormatUtils.HOUR.equals(type)) {
cal.add(Calendar.HOUR, count);
} else if (DateFormatUtils.MINUTE.equals(type)) {
cal.add(Calendar.MINUTE, count);
} else if (DateFormatUtils.SECOND.equals(type)) {
cal.add(Calendar.SECOND, count);
} else {
return "";
}
return formatDate(cal.getTime(), pattern);
}
//按时间格式相减
public static String minusDate(String dateStr, String pattern,
String type, int count) {
return addDate(dateStr, pattern, type, (0 - count));
}
//日期大小比较
public static int compareDate(String dateStr1, String dateStr2,
String pattern) {
if (checkPara(dateStr1) || checkPara(dateStr2) || checkPara(pattern)) {
return 888;
}
Date date1 = DateFormatUtils.parseStrToCustomPatternDate(dateStr1,
pattern);
Date date2 = DateFormatUtils.parseStrToCustomPatternDate(dateStr2,
pattern);
return date1.compareTo(date2);
}
//获得本月的第一天
public static String getFirstDayInMonth(String dateStr) {
if (checkPara(dateStr)) {
return "";
}
Calendar cal = DateFormatUtils.parseStrToCalendar(dateStr);
int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, firstDay);
return DateFormatUtils.formatDate(cal.getTime(),
DateFormatUtils.DATE_FORMAT);
}
//获得本月的最后一天
public static String getLastDayInMonth(String dateStr) {
if (checkPara(dateStr)) {
return "";
}
Calendar cal = DateFormatUtils.parseStrToCalendar(dateStr);
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, lastDay);
return DateFormatUtils.formatDate(cal.getTime(),
DateFormatUtils.DATE_FORMAT);
}
//获得本周的第一天
public static String getFirstDayInWeek(String dateStr) {
if (checkPara(dateStr)) {
return "";
}
Calendar cal = DateFormatUtils.parseStrToCalendar(dateStr);
int firstDay = cal.getActualMinimum(Calendar.DAY_OF_WEEK);
cal.set(Calendar.DAY_OF_WEEK, firstDay);
return DateFormatUtils.formatDate(cal.getTime(),
DateFormatUtils.DATE_FORMAT);
}
//获得本周的最后一天
public static String getLastDayInWeek(String dateStr) {
if (checkPara(dateStr)) {
return "";
}
Calendar cal = DateFormatUtils.parseStrToCalendar(dateStr);
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_WEEK);
cal.set(Calendar.DAY_OF_WEEK, lastDay);
return DateFormatUtils.formatDate(cal.getTime(),
DateFormatUtils.DATE_FORMAT);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -