?? dateformat.java~2~
字號:
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;
/** */
/**
*
* <p>Description: 時間以及時間格式相關的處理功能</p>
* <p>Copyright 2006.</p>
* @author ma jia nan
* @Create Date : 2006-10-12
* @Version : 1.0
*/
public class DateFormat {
// 系統默認日期格式
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 ";
/** */
/**
* 判斷參數是否等于null或者空
* @param para
* @return
*/
private static boolean checkPara(Object para) {
if (null == para || "".equals(para)) {
return true;
} else {
return false;
}
}
/** */
/**
* 獲得系統的當前時間,毫秒.
* @return
*/
public static long getCurrentTimeMillis() {
return System.currentTimeMillis();
}
/** */
/**
* 獲得系統的當前時間
* @return
* e.g.Thu Oct 12 10:25:14 CST 2006
*/
public static Date getCurrentDate() {
// return new Date(System.currentTimeMillis());
return new Date(getCurrentTimeMillis());
}
/** */
/**
* 獲得系統當前日期,以默認格式顯示
* @return
* e.g.2006-10-12
*/
public static String getCurrentFormatDate() {
Date currentDate = getCurrentDate();
SimpleDateFormat dateFormator = new SimpleDateFormat(
DateFormatUtils.DATE_FORMAT);
return dateFormator.format(currentDate);
}
/** */
/**
* 獲得系統當前日期時間,以默認格式顯示
* @return
* e.g.2006-10-12 10:55:06
*/
public static String getCurrentFormatDateTime() {
Date currentDate = getCurrentDate();
SimpleDateFormat dateFormator = new SimpleDateFormat(
DateFormatUtils.DATE_TIME_FORMAT);
return dateFormator.format(currentDate);
}
/** */
/**
* 獲得系統當前日期時間,按照指定格式返回
* @param pattern
* e.g.DATE_FORMAT_8 = "yyyyMMdd";
* DATE_TIME_FORMAT_14 = "yyyyMMddHHmmss";
* 或者介于二者之間的格式,e.g."yyyyMMddHH"
* @return
* e.g.200610121115
*/
public static String getCurrentCustomFormatDateTime(String pattern) {
if (checkPara(pattern)) {
return "";
}
Date currentDate = getCurrentDate();
SimpleDateFormat dateFormator = new SimpleDateFormat(pattern);
return dateFormator.format(currentDate);
}
/** */
/**
* 輸入日期,按照指定格式返回
* @param date
* @param pattern
* e.g.DATE_FORMAT_8 = "yyyyMMdd";
* DATE_TIME_FORMAT_14 = "yyyyMMddHHmmss";
* 或者類似于二者的格式,e.g."yyyyMMddHH","yyyyMM"
* @return
*/
public static String formatDate(Date date, String pattern) {
if (checkPara(pattern) || checkPara(date)) {
return "";
}
SimpleDateFormat dateFormator = new SimpleDateFormat(pattern);
return dateFormator.format(date);
}
/** */
/**
* 輸入日期,按照指定格式返回
* @param date
* @param pattern
* e.g.DATE_FORMAT_8 = "yyyyMMdd";
* DATE_TIME_FORMAT_14 = "yyyyMMddHHmmss";
* 或者類似于二者的格式,e.g."yyyyMMddHH","yyyyMM"
* @param loc 國家地區,
* e.g.new Locale("zh","CN","") 中國
* Locale.getDefault();
* @return
*/
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
* @param dateStr
* @return
*/
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
* @param dateStr
* @return
*/
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
* @param dateStr
* @return
*/
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;
}
/** */
/**
* 將日期字符串轉換成日期時間字符串
* @param dateStr
* @return
*/
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
* @param dateStr
* @param pattern
* @return
*/
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;
}
/** */
/**
* 將時間字符串從一種格式轉換成另一種格式.
* @param dateStr
* e.g. String dateStr = "2006-10-12 16:23:06";
* @param patternFrom
* e.g. DatePattern.DATE_TIME_FORMAT
* @param patternTo
* e.g. DatePattern.DATE_TIME_FORMAT_14
* @return
*/
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);
}
/** */
/**
* 日期天數增加
* @param date
* @param days
* @return
*/
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();
}
/** */
/**
* 日期天數減少
* @param date
* @param days
* @return
*/
public static Date minusDays(Date date, int days) {
return addDays(date, (0 - days));
}
/** */
/**
* 按時間格式相加
* @param dateStr 原來的時間
* @param pattern 時間格式
* @param type
* "year"年、"month"月、"day"日、"week"周、
* "hour"時、"minute"分、"second"秒
* 通過常量來設置,e.g.DateFormatUtils.YEAR
* @param count 相加數量
* @return
*/
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);
}
/** */
/**
* 那時間格式相減
* @param dateStr
* @param pattern
* @param type
* @param count
* @return
*/
public static String minusDate(String dateStr, String pattern,
String type, int count) {
return addDate(dateStr, pattern, type, (0 - count));
}
/** */
/**
* 日期大小比較
* @param dateStr1
* @param dateStr2
* @param pattern
* @return
*/
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);
}
/** */
/**
* 獲得這個月的第一天
* @param dateStr
* @return
*/
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);
}
/** */
/**
* 獲得這個月的最后一天
* @param dateStr
* @return
*/
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);
}
/** */
/**
* 獲得這周的第一天
* @param dateStr
* @return
*/
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);
}
/** */
/**
* 獲得這周的最后一天
* @param dateStr
* @return
*/
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 + -