DateFormatUtils 时间工具类

来源:互联网 发布:mac口红市场占有率 编辑:程序博客网 时间:2024/04/30 10:51
package 包的路径;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


/** 
* @ClassName: DateFormatUtils 
* @Description: TODO(日期格式化处理工具类) 
* @author Jacky
*  
*/
public class DateFormatUtils {
/**
 *
 * @Title:getSystemDateByYmd
 * @Description: 获得格式化后的日期(yyy-MM-dd)的系统时间
 * @return 格式化后的日期(yyy-MM-dd)的系统时间
 */
public static String getSystemDateByYmd() throws ParseException{
 Date d = new Date();//获取时间
 
 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
 String ymd = sdf.format(d);
       return ymd ;
}
/** 
* @Title: tranDate 
* @Description: TODO(将DATE转成想要的string) 
* @param @param date
* @param @param parm string 格式
* @param @return    设定文件 
* @return String    返回类型 
* @throws 
*/
 
public static String tranDate(Date date,String parm){
String dateStr = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat(parm);
dateStr = sdf.format(date);
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
return dateStr;
}
/**
 *
 * @Title:getSystemDateByYYYYMMDD
 * @Description: 获得格式化后的日期(yyyyMMddHHmmss)的系统时间
 * @return
 * @throws ParseException
 */
public static String getSystemDateByYYYYMMDD() throws ParseException{
       Date d = new Date();//获取时间
      
       SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
       String ymd = sdf.format(d);
       return ymd ;
   }
/**
 *
 * @Title:getSystemDateByYmd
 * @Description: 获得格式化后的日期(yyyMMdd)的系统时间
 * @return 格式化后的日期(yyyMMdd)的系统时间
 */
public static String getSystemDateByyymmdd() throws ParseException{
 Date d = new Date();//获取时间
 
 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
 String ymd = sdf.format(d);
       return ymd ;
}
/**
 *
 * @Title:getSystemDateByYmd
 * @Description: 获得格式化后的日期(MM)的系统时间
 * @return 格式化后的日期(MM)的系统时间
 */
public static String getSystemMM() throws ParseException{
 Date d = new Date();//获取时间
 
 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMM");
 String ymd = sdf.format(d);
       return ymd ;
}
/**
 *
 * @Title:getSystemDateByYmd
 * @Description: 获得格式化后的日期(yyyMMdd)的系统时间
 * @return 格式化后的日期(yyyMMdd)的系统时间
 */
public static String getSystemYY() throws ParseException{
 Date d = new Date();//获取时间
 
 SimpleDateFormat sdf=new SimpleDateFormat("yyyy");
 String ymd = sdf.format(d);
       return ymd ;
}
/**
 *
 * @Title:getSystemDateByYYYYMMDD
 * @Description: 获得格式化后的日期(yyyyMMddHHmmss)的系统时间
 * @return
 * @throws ParseException
 */
public static String getSystemDateByYYYYMMDDHHMMSSSSS() throws ParseException{
       Date d = new Date();//获取时间
      
       SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmssSSS");
       String ymd = sdf.format(d);
       return ymd ;
   }


/**
 *
 * @Title:getSystemDateByYYYYMMDD
 * @Description: 获得格式化后的日期(根据传入的字符串格式)的系统时间
 * @return
 * @throws ParseException
 */
public static String getSystemDateByParm(String parm) {
String ymd =null;
try {
Date d = new Date();//获取时间
    SimpleDateFormat sdf=new SimpleDateFormat(parm);
    ymd = sdf.format(d);
} catch (Exception e) {
// TODO: handle exception
}
      return ymd ;
  }
 
/**
 *
 * @Title:getMonthDayForDate
 * @Description: 根据字符型日期,获取该日期所在月份共有多少天
 * @param dateFormat 格式化后的日期(yyy-MM-dd)
 * @return 该日期所在月份共多少天
 */
public static int getMonthDayForDate(String dateFormat) throws ParseException{
 Calendar cDay = Calendar.getInstance();
 DateFormat dd=new SimpleDateFormat("yyyy-MM-dd");
 Date date = dd.parse(dateFormat);
       cDay.setTime(date);
       int lastDay = cDay.getActualMaximum(Calendar.DAY_OF_MONTH);
       return lastDay ;
}
 
/**
 *
 * @Title:getCalendarByYearMonth
 * @Description: 根据日期(周一yyyy-MM-dd)获取本周都有哪些天。
 * @param dateFormat
 * @return
 * @throws ParseException
 */
public static String[] getCalendarByYearMonth(String dateFormat) throws ParseException {


 Calendar cDay = Calendar.getInstance();
 DateFormat dd=new SimpleDateFormat("yyyy-MM-dd");
 Date date = dd.parse(dateFormat);
       cDay.setTime(date);


       String[] weeks = new String[7];
       String sDay0 = ""+cDay.get(Calendar.DATE) ;
       if(sDay0.length()>1){
  weeks[0]=sDay0;
 }else{
  weeks[0]="0"+sDay0;
 }
       for (int i = 1; i < 7; i++) {
  cDay.add(Calendar.DATE, 1);
  String sDay = ""+cDay.get(Calendar.DATE);
  if(sDay.length()>1){
   weeks[i]=sDay;
  }else{
   weeks[i]="0"+sDay;
  }
 }
      
       return weeks ;
}
 
/**
 *
 * @Title:getCalendarByweek
 * @Description: 根据传递过来的日期,返回当前日期所在周的时间段
 * @param dateFormat 日期("2014-09-19")
 * @return
 * @throws ParseException
 */
public static String[] getCalendarByweek(String dateFormat) throws ParseException{
 String[] resultarr = new String[2] ;
 
       SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
 Calendar cl = Calendar.getInstance();
 
 Date d = sdf.parse(dateFormat);
 
       cl.setTime(d); //nd为传过来的日期,Date 型,此步可省为当前日期
       int day_of_week = cl.get(Calendar.DAY_OF_WEEK) - 1;
       if (day_of_week == 0)
              day_of_week = 7;
       cl.add(Calendar.WEEK_OF_MONTH, 0); //idx 参数,0为当前,1为下周 -1为上周以此类推
       cl.add(Calendar.DATE, -day_of_week + 1);
       String week1 = sdf.format(cl.getTime());//周一
       resultarr[0] = week1 ;
       //System.out.println(week1);
       cl.add(Calendar.DATE, +6);
       String week2 = sdf.format(cl.getTime());//周日
       resultarr[1] = week2 ;
       //System.out.println(week2);
      
 return resultarr;
}
 
/**
 *
 * @Title:getWeekForDate
 * @Description: 根据日期(yyyy-MM-dd)获得其是该月的第几周
 * @param dateFormat 日期("2014-09-19")
 * @return
 * @throws ParseException
 */
public static Integer getWeekForDate(String dateFormat) throws ParseException{
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date date = sdf.parse(dateFormat);
 Calendar calendar = Calendar.getInstance();
 calendar.setFirstDayOfWeek(Calendar.MONTH);
 calendar.setTime(date);
 int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH);
 return weekOfMonth ;
}
 
/** 
* @Title: convertToDate 
* @Description: TODO(这里用一句话描述这个方法的作用) 
* @param @param dateString 要转化的字符串
* @param @param parms 转化后的格式,yyyy-MM-dd HH:mm:ss
* @param @return    设定文件 
* @return Date    返回类型 
* @throws 
*/
public static Date convertToDate(String dateString,String parms){
SimpleDateFormat df = new SimpleDateFormat(parms);
try {
Date date = df.parse(dateString);
return date;
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
return null;
}

/** 
* @Title: countAge 
* @Description: TODO(计算目标日期距离系统当前日期多少天) 
* @param @param createDate yyyy-MM-dd HH:mm:ss
* @param @return    设定文件 
* @return Long    返回类型 
* @throws 
*/
public static Long countAge(String createDate){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Long day =0l;
try {
String nowDate = DateFormatUtils.getSystemDateByParm("yyyy-MM-dd");
long to = df.parse(nowDate).getTime();
long from = df.parse(createDate).getTime();
day = (to - from) / (1000 * 60 * 60 * 24);
} catch (ParseException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
return day;
}
/** 
* @Title: getBetweenDay 
* @Description: TODO(判断两个日期之间相差多少天) 
* @param @param date1
* @param @param date2
* @param @return    设定文件 
* @return int    返回类型 
* @throws 
*/
public static int getBetweenDay(Date date1, Date date2) {  
       Calendar d1 = new GregorianCalendar();  
       d1.setTime(date1);  
       Calendar d2 = new GregorianCalendar();  
       d2.setTime(date2);  
       int days = d2.get(Calendar.DAY_OF_YEAR)- d1.get(Calendar.DAY_OF_YEAR);  
       int y2 = d2.get(Calendar.YEAR);  
       if (d1.get(Calendar.YEAR) != y2) {  
//          d1 = (Calendar) d1.clone();  
           do {  
               days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);  
               d1.add(Calendar.YEAR, 1);  
           } while (d1.get(Calendar.YEAR) != y2);  
       }  
       return days;  
   }
/** 
* @Title: getCompareDate 
* @Description: TODO(比较两个日期的大小,精确到秒) 
* @param @param date1
* @param @param date2
* @param @return    设定文件 
* @return Boolean    返回类型 
* @throws 
*/
public static Boolean getCompareDate(Date date1,Date date2){
java.util.Calendar c1=java.util.Calendar.getInstance();
java.util.Calendar c2=java.util.Calendar.getInstance();
c1.setTime(date1);
c2.setTime(date2);
int result=c1.compareTo(c2);
if (result <=0) {
return true;
}else {
return false;
}
}
/**
* @throws Exception  
* @Title: getSystemDate 
* @Description: TODO(获取yyyy-MM-dd HH:mm:ss的Date类型) 
* @param @return    设定文件 
* @return Date    返回类型 
* @throws 
*/
public static Date getSystemDate(){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = df.format(new Date());
System.out.println(date);
Date dateSyDate = null;
try {
dateSyDate =  df.parse(date);
} catch (ParseException e) {
System.out.println(e.getMessage());
}
return dateSyDate;
}
/** 
* @Title: DateDifferentExample 
* @Description: TODO(计算出两个日期之间相差多少天多少小时多少分多少秒) 
* @param @param d1
* @param @param d2
* @param @return    设定文件 
* @return String    返回类型 
* @throws 
*/
public static String DateDifferentExample (Date d1,Date d2){
StringBuilder resultString = new StringBuilder();
try {
           //毫秒ms
           long diff = d2.getTime() - d1.getTime();
   
           long diffSeconds = diff / 1000 % 60;
           long  diffMinutes  = diff / (60 * 1000) % 60;
           long diffHours = diff / (60 * 60 * 1000) % 24;
           long diffDays = diff / (24 * 60 * 60 * 1000);
   
           resultString.append(diffDays+"天,");
           resultString.append(diffHours +"小时,");
           resultString.append(diffMinutes + " 分钟");
           resultString.append(diffSeconds +"秒.");
       } catch (Exception e) {
           e.printStackTrace();
       }
return resultString.toString();
}
public static void main(String[] args) throws ParseException {
 
/* System.out.println(getSystemDateByYYYYMMDDHHMMSSSSS());
System.out.println(getSystemYY());
System.out.println(getSystemMM());
System.out.println(getSystemDateByyymmdd());*/
/*Long day = countAge("2015-10-20");
System.out.println(day.toString());*/
/*Date date = getSystemDate();
System.out.println(date.toString());*/
String s1="2008-01-25 09:12:11";
String s2="2008-01-25 09:12:09";
/*java.text.DateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Calendar c1=java.util.Calendar.getInstance();
java.util.Calendar c2=java.util.Calendar.getInstance();
try
{
c1.setTime(df.parse(s1));
c2.setTime(df.parse(s2));
}catch(java.text.ParseException e){
System.err.println("格式不正确");
}
int result=c1.compareTo(c2);
if(result==0)
System.out.println("c1相等c2");
else if(result<0)
System.out.println("c1小于c2");
else
System.out.println("c1大于c2");*/
Date d1 = convertToDate(s2, "yyyy-MM-dd HH:mm:ss");
Date d2 = convertToDate(s1, "yyyy-MM-dd HH:mm:ss");
System.out.println(DateDifferentExample (d1,d2));
}

}
0 0
原创粉丝点击