日期时间处理类

import java.text.*;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {

 /**
  * 获取现在时间
  *
  * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
  */
 public static String getStringDate() {
  Date currentTime = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String dateString = formatter.format(currentTime);
  return dateString;
 }

 /**
  * 获取现在时间
  *
  * @return 返回短时间字符串格式yyyy-MM-dd
  */
 public static String getStringDateShort() {
  Date currentTime = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  String dateString = formatter.format(currentTime);
  return dateString;
 }

 /**
  * 获取时间 小时:分;秒 HH:mm:ss
  *
  * @return
  */
 public static String getTimeShort() {
  SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
  Date currentTime = new Date();
  String dateString = formatter.format(currentTime);
  return dateString;
 }

 /**
  * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
  *
  * @param strDate
  * @return
  */
 public static Date strToDateLong(String strDate) {
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  ParsePosition pos = new ParsePosition(0);
  Date strtodate = formatter.parse(strDate, pos);
  return strtodate;
 }

 /**
  * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
  *
  * @param dateDate
  * @return
  */
 public static String dateToStrLong(java.util.Date dateDate) {
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String dateString = formatter.format(dateDate);
  return dateString;
 }

 /**
  * 将短时间格式时间转换为字符串 yyyy-MM-dd
  *
  * @param dateDate
  * @param k
  * @return
  */
 public static String dateToStr(java.util.Date dateDate) {
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  String dateString = formatter.format(dateDate);
  return dateString;
 }

 /**
  * 将短时间格式字符串转换为时间 yyyy-MM-dd
  *
  * @param strDate
  * @return
  */
 public static Date strToDate(String strDate) {
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  ParsePosition pos = new ParsePosition(0);
  Date strtodate = formatter.parse(strDate, pos);
  return strtodate;
 }

 /**
  * 得到现在时间
  *
  * @return
  */
 public static Date getNow() {
  Date currentTime = new Date();
  return currentTime;
 }

 /**
  * 提取一个月中的最后一天
  *
  * @param day
  * @return
  */
 public static Date getLastDate(long day) {
  Date date = new Date();
  long date_3_hm = date.getTime() - 3600000 * 34 * day;
  Date date_3_hm_date = new Date(date_3_hm);
  return date_3_hm_date;
 }

 /**
  * 得到现在时间
  *
  * @return 字符串 yyyyMMdd HHmmss
  */
 public static String getStringToday() {
  Date currentTime = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
  String dateString = formatter.format(currentTime);
  return dateString;
 }

 /**
  * 得到现在小时
  */
 public static String getHour() {
  Date currentTime = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String dateString = formatter.format(currentTime);
  String hour;
  hour = dateString.substring(11, 13);
  return hour;
 }

 /**
  * 得到现在分钟
  *
  * @return
  */
 public static String getTime() {
  Date currentTime = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String dateString = formatter.format(currentTime);
  String min;
  min = dateString.substring(14, 16);
  return min;
 }

 /**
  * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
  *
  * @param sformat
  *            yyyyMMddhhmmss
  * @return
  */
 public static String getUserDate(String sformat) {
  Date currentTime = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat(sformat);
  String dateString = formatter.format(currentTime);
  return dateString;
 }
 
 /**
  *根据用户传入要增减的时间(分钟)返回新的时间格式
  *(只针对分和小时的更改,且大于60分必须是整小时的倍数)
  * @param String str
  * @return yyyy-MM-dd HH:mm:ss
  */
 public static String getAddOrSubtractTime(String str){
  String newStr="";
  int addtime=Integer.parseInt(str);
  Date currentTime = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String dateString = formatter.format(currentTime);
        try {  
            Date olddate = formatter.parse(dateString); 
            Calendar  g = Calendar.getInstance();  
            g.setTime(olddate);
            if(addtime>0){
             if(Integer.parseInt(str)<60){
                 g.add(Calendar.MINUTE,Integer.parseInt(str));
                }else{
                 g.add(Calendar.HOUR,addtime/60); 
                }
            }else{
             if(Integer.parseInt(str)>-60){
             
                 g.add(Calendar.MINUTE,Integer.parseInt(str));
                }else{
                 g.add(Calendar.HOUR,addtime/60); 
                }
            } 
            Date newdate = g.getTime();  
            newStr=formatter.format(newdate);
        } catch (ParseException e) {              
            e.printStackTrace();  
        } 
  return newStr;
 }
 
 /**
  *根据用户传入要增减的时间(分钟)及原时间返回新的时间格式
  *(只针对分和小时的更改,且大于60分必须是整小时的倍数)
  * @param String str,String oldTime
  * @return yyyy-MM-dd HH:mm:ss
  */
 public static String getAddTime(String str,String oldTime){
  String newStr="";
  int addtime=Integer.parseInt(str);
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  //String dateString = formatter.format(oldTime);
        try {  
            Date olddate = formatter.parse(oldTime); 
            Calendar  g = Calendar.getInstance();  
            g.setTime(olddate);
            if(addtime>0){
             if(Integer.parseInt(str)<60){
                 g.add(Calendar.MINUTE,Integer.parseInt(str));
                }else{
                 g.add(Calendar.HOUR,addtime/60); 
                }
            }else{
             if(Integer.parseInt(str)>-60){
             
                 g.add(Calendar.MINUTE,Integer.parseInt(str));
                }else{
                 g.add(Calendar.HOUR,addtime/60); 
                }
            } 
            Date newdate = g.getTime();  
            newStr=formatter.format(newdate);
        } catch (ParseException e) {              
            e.printStackTrace();  
        } 
  return newStr;
 }
 
 /**
  *根据用户传入的结束时间(格式为2009-01-01 01:10:10)返回剩余时间为多少分钟
  * @param String endtime
  * @return String(剩余多少分,小于0表示已经过了多少分)
  */
 public static String hasTime(String endtime){
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     String systemTime = sdf .format(new Date()).toString();
     try {
   Date begin=sdf.parse(systemTime);
   Date end = sdf.parse(endtime);
   long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒
   return String.valueOf(between/3600*60+between%3600/60);
  } catch (ParseException e) {
   return null;
  }
 }
 
 /**
  *根据用户传入的结束时间(格式为2009-01-01 01:10:10)返回剩余时间为多少秒
  * @param String endtime
  * @return String(剩余多少秒,小于0表示已经过了多少秒)
  */
 public static int hasSecond(String endtime){
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     String systemTime = sdf .format(new Date()).toString();
     try {
   Date nowTime=sdf.parse(systemTime);
   Date end = sdf.parse(endtime);
   long between=(end.getTime()-nowTime.getTime())/1000;//除以1000是为了转换成秒
   return Integer.parseInt(String.valueOf(between));
  } catch (ParseException e) {
   return 0;
  }
 }
 
}

你可能感兴趣的:(日期)