日期工具类 记录一下(java获取日期时间信息)



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


public class Datex {
    
    public static String getSeqDateTime() {
        return new java.text.SimpleDateFormat("yyyyMMddHHmmss")
                .format(new Date());
    }
    
    public static String getSeqDate() {
        return new java.text.SimpleDateFormat("yyyyMMdd")
                .format(new Date());
    }
    
    public static String getMonth () {
        return new java.text.SimpleDateFormat("yyyy-MM")
                .format(new Date());
    }
    
    /**
     * 当前日期 - 字符串
     */
    public static String getStrDate(){
        return new java.text.SimpleDateFormat("yyyy-MM-dd")
                .format(new Date());
    }
    
    /**
     * 
     * 日期 - 字符串
     */
    public  static String getStrDate(Date date){
        return new java.text.SimpleDateFormat("yyyy-MM-dd")
        .format(date);
    }
    
    /**
     * 
     * 当前日期时间 - 字符串
     */
    public static String getStrDateTime(){
        return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                .format(new Date());
    }
    
    /**
     * 
     * 日期时间 - 字符串
     */
    public  static String getStrDateTime(Date date){
        return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
        .format(date);
    }
    
    /**
     * 
     * @return 返回当前Date()
     */
    public static Date getDate(){
        return new Date();
    }
    
    /**
     * 字符串 - 日期时间
     * @param yyyy-MM-dd HH:mm:ss
     * @return Date
     */
    public static Date getDateTime(String datetime){
        java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = null;
        try {
            d = sd.parse(datetime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return d;
    }
    
    /**
     * 字符串 - 日期
     * @param yyyy-MM-dd
     * @return Date
     */
    public static Date getDate(String date){
        java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        Date d = null;
        try {
            d = sd.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return d;
    }
    
    /**
     * 日期加减
     * @param date 日期
     * @param count 加的天数,可以为负
     * @return 日期字符串
     */
    public static String addDate(String date,int count){
        Calendar c = Calendar.getInstance();
        c.setTime(Datex.getDate(date));
        c.add(Calendar.DATE, count);
        return getStrDate(c.getTime());
    }
    
    /**
     * 日期时间加减
     * @param datetime 日期时间
     * @param count 加多少,可以为负
     * @param type 加的类型,Calendar.DATE或其他
     * @return 日期时间字符串
     */
    public static String addDateTime(String datetime,int count,int type){
        Calendar c = Calendar.getInstance();
        c.setTime(Datex.getDateTime(datetime));
        c.add(type, count);
        return getStrDateTime(c.getTime());
    }
    
    /**
     * 日期间隔多少天
     * @param date1 前日期
     * @param date2 后日期
     * @return
     */
    public static int intervalDay(String date1,String date2){
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar cal = Calendar.getInstance();
            cal.setTime(sdf.parse(date1));
            long time1 = cal.getTimeInMillis();
            cal.setTime(sdf.parse(date2));
            long time2 = cal.getTimeInMillis();
            long between_days = (time2 - time1) / (1000 * 3600 * 24);
            int i = Integer.parseInt(String.valueOf(between_days));
            return i;
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
        
    }
    
    /**
     * 过了多少小时
     * @param datetime 之前日期时间
     * @return
     */
    public static int intervalHour(String datetime){
        try {
            long now = new Date().getTime();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date d2 = sdf.parse(datetime);
            long before = d2.getTime();
            long between_hour = (now - before) / (1000 * 3600);
            int i = Integer.parseInt(String.valueOf(between_hour));
//            System.out.println(before + "," + now + ",i=" + i);
            return i;
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }
    
    /**
     * 返回时间描述:如“刚刚”,“10分钟前”
     * @param 字符串datetime
     * @return
     */
    public static String getDateTimeState(String datetime){
        Date d = new Date();
        java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d2 = null;
        String r = "";
        try {
            d2 = sd.parse(datetime);
            long l = d.getTime() - d2.getTime();
            long day=l/(24*60*60*1000);
            long hour=(l/(60*60*1000)-day*24);
            long min=((l/(60*1000))-day*24*60-hour*60);
            
           if(day > 0){
               r = day + "天前";
           }else if(hour > 0 ){
               r = hour+"小时前";
           }else if(min > 0){
                   r = min+"分前";
           }else{
               r = "刚刚";
           }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        
       return r;
    }
    
    /**
     * 返回截止时间
     * @param 字符串datetime
     * @return
     */
    public static String getDateTimeLimit(String datetime){
        Date d = new Date();
        java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d2 = null;
        String r = "";
        try {
            if(datetime.length() == 16) datetime = datetime + ":00";
            if(datetime.length() == 10) datetime = datetime + " 00:00:00";
            d2 = sd.parse(datetime);
            long l = d2.getTime() - d.getTime();//跟时间描述反过来
            long day=l/(24*60*60*1000);
            long hour=(l/(60*60*1000)-day*24);
            long min=((l/(60*1000))-day*24*60-hour*60);
            long sec=((l/1000)-day*24*60*60-hour*60*60-min*60);
            
           if(day > 0){
               r = "剩余" + day + "天截止";
           }else if(hour > 0 ){
               r = "剩余" + hour + "小时截止";
           }else if(min > 0){
               r = "剩余" + min + "分钟截止";
           }else if(sec > 0){
               r = "剩余" + sec + "秒截止";
           }else{
               r = "已截止";
           }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        
       return r;
    }
    
    /**
     * 返回截止时间
     * @param 字符串datetime
     * @return
     */
    public static String getDateTimeLimit_withHour(String datetime){
        Date d = new Date();
        java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d2 = null;
        StringBuilder sb = new StringBuilder();
        try {
            if(datetime.length() == 16) datetime = datetime + ":59";
            if(datetime.length() == 10) datetime = datetime + " 23:59:59";
            d2 = sd.parse(datetime);
            long l = d2.getTime() - d.getTime();//跟时间描述反过来
            long day=l/(24*60*60*1000);
            long hour=(l/(60*60*1000)-day*24);
            long min=((l/(60*1000))-day*24*60-hour*60);
            long sec=((l/1000)-day*24*60*60-hour*60*60-min*60);
            
            
            if(day > 0){
                sb.append(day+"天");
                if(hour > 0 ){
                    sb.append(hour+"小时");
                }
            }else if(hour > 0 ){
                sb.append(hour+"小时");
                if(min > 0){
                    sb.append(min+"分钟");
                }
            }else if(min > 0){
                sb.append(min+"分钟");
                if(sec > 0){
                    sb.append(sec+"秒");
                }
            }else if(sec > 0){
                sb.append(sec+"秒");
            }else{
                sb.append("");
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        
        return sb.toString();
    }
    
    /**
     * 获取到截止日期的时间
     * @param datetime
     * @return
     */
    @SuppressWarnings("unused")
    public static long getDeadLineHours(String datetime){
        Date d = new Date();
        java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d2 = null;
        long sb = 0;
        try {
            if(datetime.length() == 16) datetime = datetime + ":59";
            if(datetime.length() == 10) datetime = datetime + " 23:59:59";
            d2 = sd.parse(datetime);
            long l = d2.getTime() - d.getTime();//跟时间描述反过来
            long day=l/(24*60*60*1000);
            long hour=(l/(60*60*1000)-day*24);
            long min=((l/(60*1000))-day*24*60-hour*60);
            long sec=((l/1000)-day*24*60*60-hour*60*60-min*60);
            
            
            if(day > 0){
                sb=day*24;
                if(hour > 0 ){
                    sb=sb+hour;
                }
            }else if(hour > 0 ){
                sb=hour;
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return sb;
    }
    /**
     * 获取到截止日期的天数
     * @param datetime
     * @return
     */
    @SuppressWarnings("unused")
    public static long getDeadLineDays(String datetime){
        Date d = new Date();
        java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d2 = null;
        long sb = 0;
        try {
            if(datetime.length() == 16) datetime = datetime + ":59";
            if(datetime.length() == 10) datetime = datetime + " 23:59:59";
            d2 = sd.parse(datetime);
            long l = d2.getTime() - d.getTime();//跟时间描述反过来
            long day=l/(24*60*60*1000);
            sb=day;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return sb;
    }
    
    
    /**
     * 返回日期描述:如“今天”,“昨天”,“明天”,日期
     * @param datetime
     * @return
     */
    public static String getDateState(String date){
        java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        Date d2 = null;
        String r = "";
        try {
            Date d = sd.parse(Datex.getStrDate());
            d2 = sd.parse(date);
            long l = d.getTime() - d2.getTime();
            long day=l/(24*60*60*1000);
            
           if(day == 0){
               r = "今天";
           }else if(day == -1){
               r = "明天";
           }else if(day == 1){
               r = "昨天";
           }else{
               r = date;
           }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        
       return r;
    }
    
    /**
    * yyyy年MM月dd日 HH:mm
    * @return
    */
    public static String changeStr(String str){
        Date d = getDateTime(str);
        String s = new java.text.SimpleDateFormat("yyyy年MM月dd日 HH:mm")
        .format(d);
        return s;
    }
    
    
    public static Integer compareDateTime(String datetime1,String datetime2){
        java.text.SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
        //获取Calendar实例  
        Calendar currentTime = Calendar.getInstance();  
        Calendar compareTime = Calendar.getInstance();  
        try {  
            //把字符串转成日期类型  
            currentTime.setTime(df.parse(datetime1));  
            compareTime.setTime(df.parse(datetime2));  
        } catch (ParseException e) {  
            e.printStackTrace();  
        }  
        //利用Calendar的方法比较大小  
        Integer i;
        if (currentTime.compareTo(compareTime) > 0) {  
           i=1;
        }else if(currentTime.compareTo(compareTime)==0){ 
            i=0;
        }else{
            i=-1;
        }
        return i;
    }  
    
    /**
     * 返回周几,周日=1,周一=2
     * @param cdate yyyy-MM-dd
     * @return
     */
    public static int getWeek(String cdate){
        try {
            java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            c.setTime(sd.parse(cdate));
            return c.get(Calendar.DAY_OF_WEEK);
        } catch (ParseException e) {
            e.printStackTrace();
            return 0;
        }
    }
    
    /**
     * 返回今天第几周,如:201719
     * @param cdate,日期如2017-04-17
     * @return
     */
    public static String getYearWeek(String cdate){
        try {
            java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c=Calendar.getInstance(); 
            c.setTime(sd.parse(cdate));
            return c.get(Calendar.YEAR) + "" +  c.get(Calendar.WEEK_OF_YEAR);
        }catch (ParseException e) {
            e.printStackTrace();
            return null;
        }            
    }
    
    /**
     * 返回周几字符串
     * @param cdate yyyy-MM-dd
     * @return
     */
    public static String getWeekStr(String cdate){
        int i = getWeek(cdate);
        switch (i) {
        case 1:
            return "星期天";
        case 2:
            return "星期一";
        case 3:
            return "星期二";
        case 4:
            return "星期三";
        case 5:
            return "星期四";
        case 6:
            return "星期五";
        case 7:
            return "星期六";
        default:
            return "";
        }
    }
    
    
    public static void main(String[] args) throws ParseException {
        int i = getWeek("2019-08-07");
        System.out.println(getStrDate());
 
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值