package com.qxueyou.scc.base.util;
|
|
/**
|
* ¼Ç¼ÏîÄ¿¹ÜÀí²¿·ÖºËÐĵÄÊý¾Ý¿â×ÖµäÐÅÏ¢£»»ù´¡²Ù×÷Form
|
*
|
* @author µËÖ¾ÓÀ
|
* @since JDK1.6
|
* @history 2014-11-28 µËÖ¾ÓÀ н¨
|
*/
|
import java.sql.Timestamp;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.GregorianCalendar;
|
import java.util.Locale;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
public class DateUtils {
|
|
|
/**
|
* ¸ù¾Ý¸ñʽ»ñµÃÈÕÆÚ×Ö·û´®
|
*
|
* @param sFormat
|
* @return
|
*/
|
public String getDateStr(String sFormat) {
|
Calendar tCal = Calendar.getInstance();
|
Timestamp ts = new Timestamp(tCal.getTime().getTime());
|
java.util.Date date = new java.util.Date(ts.getTime());
|
SimpleDateFormat formatter = new SimpleDateFormat(sFormat, Locale.CHINA);
|
return formatter.format(date);
|
}
|
|
/**
|
* ¸ù¾Ý¸ø¶¨¸ñʽ»ñÈ¡ÌØ¶¨Ê±¼äµÄ¸ñʽ»¯ÏÔʾ
|
*
|
* @param ts
|
* @param sFormat
|
* @return
|
*/
|
public String getDateFormat(Timestamp ts, String sFormat) {
|
Date date = new Date(ts.getTime());
|
SimpleDateFormat formatter = new SimpleDateFormat(sFormat, Locale.CHINA);
|
return formatter.format(date);
|
}
|
|
/**
|
* ¸ñʽ»¯ÈÕÆÚ
|
*
|
* @param ts
|
* @return
|
*/
|
public String getSDate(Timestamp ts) {
|
Date date = new Date(ts.getTime());
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
|
return formatter.format(date);
|
}
|
|
/**
|
* ½«StringÀàÐ͵ÄÈÕÆÚת»»ÎªÊ±¼ä
|
*
|
* @param dt
|
* @return
|
*/
|
public Timestamp getTs(String dt) {
|
Date date = java.sql.Date.valueOf(dt);
|
Calendar tCal = Calendar.getInstance();
|
tCal.setTime(date);
|
return new Timestamp(tCal.getTime().getTime());
|
}
|
|
/**
|
* ½¨Òé»ñµÃ¶ÌÈͮ򵀫¦Àí·½Ê½ ÀýÈç: getShortDate(2004-10-10 10:10:10.123) = 2004-10-10
|
*
|
* @param dt
|
* @return
|
*/
|
public String getShortDate(String dt) {
|
try {
|
return dt.substring(0, dt.indexOf(' '));
|
} catch (Exception e) {
|
return dt;
|
}
|
}
|
|
/**
|
* È¡µÃµ±Ç°ÈÕÆÚʱ¼ä
|
*
|
* @return
|
*/
|
public Timestamp getCurrDateTime() {
|
Calendar tCal = Calendar.getInstance();
|
return new Timestamp(tCal.getTime().getTime());
|
}
|
|
/**
|
* È¡µÃµ±Ç°ÈÕÆÚʱ¼ä ºÁÃëΪ0
|
*
|
* @return
|
*/
|
public static Timestamp getCurrTime() {
|
Calendar tCal = Calendar.getInstance();
|
tCal.set(Calendar.MILLISECOND, 0);
|
return new Timestamp(tCal.getTime().getTime());
|
}
|
|
/**
|
* »ñµÃ×î³£¼ûµÄÈÕÆÚ¸ñʽÄÚÈÝ : Äê-ÔÂ-ÈÕ Ð¡Ê±-·ÖÖÓ-Ãë
|
*
|
* @param ts
|
* @return
|
*/
|
public String getSDateTime(Timestamp ts) {
|
return getDateFormat(ts, "yyyy-MM-dd HH:mm:ss");
|
}
|
|
/* ¸ñʽ»¯ÈÕÆÚ */
|
public String getSTime(Timestamp ts) {
|
return getDateFormat(ts, "HH:mm:ss");
|
}
|
|
/**
|
* »ñÈ¡µ±ÌìµÄÈÕÆÚ
|
*
|
* @return
|
*/
|
public final static String getToday() {
|
java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis());
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
|
return formatter.format(ts);
|
|
}
|
|
// ¸ù¾Ýʱ¼ä»ñµÃËæ»úÊý
|
public String getRnd() {
|
Calendar tCal = Calendar.getInstance();
|
Timestamp ts = new Timestamp(tCal.getTime().getTime());
|
java.util.Date date = new java.util.Date(ts.getTime());
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddhhmmss", Locale.CHINA);
|
String tmpStr = formatter.format(date) + Math.round(Math.random() * 1000 + 1);
|
|
return tmpStr;
|
}
|
|
/**
|
* ¼ÆËãÈÕÆÚÖ®¼äµÄ²îÖµ 2004-3-25 Ôö¼Ó
|
*
|
* @param dt1
|
* @param dt2
|
* @return
|
*/
|
public int dateDiff(Timestamp dt1, Timestamp dt2) {
|
long ldate1 = dt1.getTime();
|
long ldate2 = dt2.getTime();
|
return (int) ((ldate2 - ldate1) / (1000 * 60 * 60 * 24));
|
}
|
|
/**
|
* ¼ÆËã·ÖÖÓ
|
*
|
* @param dt1
|
* @param dt2
|
* @return
|
*/
|
public int minuteDiff(Timestamp dt1, Timestamp dt2) {
|
long ldate1 = dt1.getTime();
|
long ldate2 = dt2.getTime();
|
return (int) ((ldate2 - ldate1) / (1000 * 60));
|
}
|
|
/**
|
* »ñÈ¡Ã÷ÌìµÄÈÕÆÚ
|
*
|
* @return
|
*/
|
public String getTomorrow() {
|
return getNextDay(getToday());
|
}
|
|
/**
|
* »ñµÃµ±Ç°ÈÕÆÚµÄÏÂÒ»Ìì
|
*
|
* @param date
|
* @return
|
*/
|
public String getNextDay(String date) {
|
if (StringUtils.isBlank(date)) {
|
return "";
|
}
|
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
|
Calendar calendar = Calendar.getInstance();
|
try {
|
calendar.setTime(f.parse(date));
|
} catch (ParseException ex) {
|
return date;
|
}
|
calendar.add(5, 1);
|
return f.format(calendar.getTime());
|
}
|
|
/**
|
* LST numΪÕý:µ±Ç°ÈÕÆÚºónumÌìÊÇ·µ»ØÖµ numΪ¸º:µ±Ç°ÈÕÆÚǰnumÌìÊÇ·µ»ØÖµ ·µ»ØµÄÈÕÆÚµÄ¸ñʽ:yyyy-MM-dd
|
*/
|
public static String getTheDay(int num) {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
|
GregorianCalendar gc = new GregorianCalendar();
|
gc.add(GregorianCalendar.DATE, num);
|
Date theday = gc.getTime();
|
return sdf.format(theday);
|
}
|
|
/**
|
* ½«ÈÕÆÚÓÉStringת»»ÎªDateÀàÐÍ
|
*
|
* @param date
|
* @return
|
* @throws ParseException
|
*/
|
public static Date convertStringToDate(String sdate) throws ParseException {
|
String date = sdate;
|
if (StringUtils.isBlank(date)) {
|
date = getToday();
|
}
|
|
SimpleDateFormat objDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
|
Date objDate = objDateFormat.parse(date);
|
|
return objDate;
|
}
|
|
/**
|
* ½«ÈÕÆÚÓÉStringת»»ÎªDateÀàÐÍ
|
*
|
* @param date
|
* @param format
|
* @return
|
* @throws ParseException
|
*/
|
public static Date convertStringToDate(String sdate, String format) throws ParseException {
|
String date = sdate;
|
SimpleDateFormat objDateFormat = new SimpleDateFormat(format, Locale.CHINA);
|
if (StringUtils.isBlank(date)) {
|
java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis());
|
date = objDateFormat.format(ts);
|
}
|
|
Date objDate = objDateFormat.parse(date);
|
|
return objDate;
|
}
|
|
|
/**
|
* ½«ÈÕÆÚÓÉyyyyÄêMMÔÂStringת»»ÎªDateÀàÐÍ
|
*
|
* @param date
|
* @return
|
* @throws ParseException
|
*/
|
public static Date convertStringToDateCh(String sdate) throws ParseException {
|
String date = sdate;
|
SimpleDateFormat objDateFormat = new SimpleDateFormat("yyyyÄêMMÔÂ", Locale.CHINA);
|
|
if (StringUtils.isBlank(date)) {
|
java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis());
|
date = objDateFormat.format(ts);
|
}
|
|
Date objDate = objDateFormat.parse(date);
|
|
return objDate;
|
}
|
|
/**
|
* È¡µÃÖ¸¶¨ÄêÔµĵÚÒ»Ìì
|
* @param year
|
* @param month
|
* @return
|
*/
|
public static String getLastDayOfMonthToString(int year, int month) {
|
Calendar cal = Calendar.getInstance();
|
cal.set(Calendar.YEAR, year);
|
cal.set(Calendar.MONTH, month - 1);
|
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DATE));
|
return new SimpleDateFormat( "yyyy-MM-dd", Locale.CHINA).format(cal.getTime());
|
}
|
|
/**
|
* È¡µÃÖ¸¶¨ÄêÔµÄ×îºóÒ»Ìì
|
* @param year
|
* @param month
|
* @return
|
*/
|
public static String getFirstDayOfMonthToString(int year, int month) {
|
Calendar cal = Calendar.getInstance();
|
cal.set(Calendar.YEAR, year);
|
cal.set(Calendar.MONTH, month - 1);
|
cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE));
|
return new SimpleDateFormat( "yyyy-MM-dd", Locale.CHINA).format(cal.getTime());
|
}
|
|
/**
|
* È¡µÃÖ¸¶¨ÄêÔµĵÚÒ»Ìì
|
* @param year
|
* @param month
|
* @return
|
*/
|
public static Date getLastDayOfMonthToDate(int year, int month) {
|
Calendar cal = Calendar.getInstance();
|
cal.set(Calendar.YEAR, year);
|
cal.set(Calendar.MONTH, month - 1);
|
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DATE));
|
return cal.getTime() ;
|
}
|
|
/**
|
* È¡µÃÖ¸¶¨ÄêÔµÄ×îºóÒ»Ìì
|
* @param year
|
* @param month
|
* @return
|
*/
|
public static Date getFirstDayOfMonthToDate(int year, int month) {
|
Calendar cal = Calendar.getInstance();
|
cal.set(Calendar.YEAR, year);
|
cal.set(Calendar.MONTH, month - 1);
|
cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE));
|
return cal.getTime();
|
}
|
|
/**
|
* µÃµ½Ò»¶Îʱ¼äÄÚÓжàÉÙÖÜ
|
* @param startTime
|
* @param endTime
|
* @return
|
*/
|
public static int getWeekCounts(Date startTime,Date endTime){
|
|
Calendar c_begin = Calendar.getInstance();
|
Calendar c_end = Calendar.getInstance();
|
c_begin.setTime(startTime);
|
c_end.setTime(endTime);
|
|
int count = 1;
|
|
while(c_begin.before(c_end)){
|
if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
|
count++;
|
}
|
c_begin.add(Calendar.DAY_OF_YEAR, 1);
|
}
|
|
return count;
|
}
|
|
/**
|
* µÃµ½ÈÕÆÚµÄÄê
|
* @param date
|
* @return
|
*/
|
public static int getYearInDate(Date date){
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(date);
|
return cal.get(Calendar.YEAR);
|
|
}
|
|
/**
|
* µ±Ç°Ê±¼ä´¦ÓÚÒ»¶Îʱ¼äµÄµÚ¼¸ÖÜ
|
* @param startTime
|
* @param endTime
|
* @return
|
*/
|
public static int getWeekIndex(Date startTime,Date endTime){
|
|
Calendar begin = Calendar.getInstance();
|
Calendar end = Calendar.getInstance();
|
begin.setTime(startTime);
|
end.setTime(endTime);
|
|
int count = 1;
|
|
Calendar now = Calendar.getInstance();
|
|
while(begin.before(end)){
|
|
if(begin.get(Calendar.YEAR) == now.get(Calendar.YEAR)
|
&& begin.get(Calendar.MONTH) == now.get(Calendar.MONTH)
|
&& begin.get(Calendar.DAY_OF_MONTH) == now.get(Calendar.DAY_OF_MONTH)){
|
return count ;
|
}
|
|
|
if(begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
|
count++;
|
}
|
begin.add(Calendar.DAY_OF_YEAR, 1);
|
}
|
|
return count;
|
}
|
|
/**
|
* Ö¸¶¨Ê±¼ä´¦ÓÚÒ»¶Îʱ¼äµÄµÚ¼¸ÖÜ
|
* @param startTime
|
* @param endTime
|
* @return
|
*/
|
public static int getSpecifyWeekIndex(Date startTime,Date endTime,Date specifyDate){
|
|
Calendar begin = Calendar.getInstance();
|
Calendar end = Calendar.getInstance();
|
begin.setTime(startTime);
|
end.setTime(endTime);
|
|
int count = 1;
|
|
Calendar specify = Calendar.getInstance();
|
specify.setTime(specifyDate);
|
|
while(begin.before(end)){
|
|
if(begin.get(Calendar.YEAR) == specify.get(Calendar.YEAR)
|
&& begin.get(Calendar.MONTH) == specify.get(Calendar.MONTH)
|
&& begin.get(Calendar.DAY_OF_MONTH) == specify.get(Calendar.DAY_OF_MONTH)){
|
return count ;
|
}
|
|
if(begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
|
count++;
|
}
|
begin.add(Calendar.DAY_OF_YEAR, 1);
|
}
|
|
return count;
|
}
|
|
}
|