java中时间处理

Posted hct118

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中时间处理相关的知识,希望对你有一定的参考价值。

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

public class BBDateUtil {
    private static String WITHOUTTIME_DATE_PATTERN = "yyyyMMdd";
    public static String ZH_CN_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
    public static String year_month_day = "yyyy-MM-dd";
    public static String  yyyyMMddHHmmss= "yyyyMMddHHmmss";

    // 获取"yyyyMMdd"格式时间
    public static String getCurrentDate() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(WITHOUTTIME_DATE_PATTERN);
        String time = sdf.format(date);
        return time;
    }

    // 获取"yyyy-MM-dd"格式时间
    public static String getCurrentDatetoYear_month_day() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(year_month_day);
        String time = sdf.format(date);
        return time;
    }

    // 获取"yyyy-MM-dd HH:mm:ss"格式时间
    public static String getCurrentDateTime() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(ZH_CN_DATETIME_PATTERN);
        String time = sdf.format(date);
        return time;
    }
    //获取"yyyyMMdd"格式时间
     public static String getCurrentDateyyyyMMddHHmmss(){
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat(yyyyMMddHHmmss);
            String time = sdf.format(date);
            return time;
        }

    // 获取"yyyyMMdd"格式时间并在当前月份上面更改月份
    public static String getCurrentDateChangeMonth(int month) {
        SimpleDateFormat dft = new SimpleDateFormat(WITHOUTTIME_DATE_PATTERN);
        Calendar date = Calendar.getInstance();
        date.add(Calendar.MONTH, month);
        String endDate = dft.format(date.getTime());
        return endDate;
    }

    // 获取"yyyy_MM_dd"格式时间并在当前月份上面更改月份
    public static String getCurrentYear_month_dayChangeMonth(int month) {
        SimpleDateFormat dft = new SimpleDateFormat(year_month_day);
        Calendar date = Calendar.getInstance();
        date.add(Calendar.MONTH, month);
        String endDate = dft.format(date.getTime());
        return endDate;
    }

    // 获取"yyyy-MM-dd HH:mm:ss"格式时间并在当前月份上面更改月份
    public static String getCurrentDateTimeChangeMonth(int month) {
        SimpleDateFormat dft = new SimpleDateFormat(ZH_CN_DATETIME_PATTERN);
        Calendar date = Calendar.getInstance();
        date.add(Calendar.MONTH, month);
        String endDate = dft.format(date.getTime());
        return endDate;
    }

    // 获取"yyyy-MM-dd HH:mm:ss"格式时间,变更小时
    public static String getCurrentDateTimeChangeHour(int hour) {
        SimpleDateFormat sdf = new SimpleDateFormat(ZH_CN_DATETIME_PATTERN);
        Calendar date = Calendar.getInstance();
        date.add(Calendar.HOUR_OF_DAY, hour);
        String time = sdf.format(date.getTime());
        return time;
    }

    // 获取"yyyy-MM-dd HH:mm:ss"格式时间改变天数
    public static String getCurrentDateTimeChangeDay(int day) {
        SimpleDateFormat dft = new SimpleDateFormat(ZH_CN_DATETIME_PATTERN);
        Calendar date = Calendar.getInstance();
        date.add(Calendar.DAY_OF_MONTH, day);
        String endDate = dft.format(date.getTime());
        return endDate;
    }

    // 获取"yyyy-MM-dd"格式时间改变天数
    public static String getCurrent_year_month_day_ChangeDay(int day) {
        SimpleDateFormat dft = new SimpleDateFormat(year_month_day);
        Calendar date = Calendar.getInstance();
        date.add(Calendar.DAY_OF_MONTH, day);
        String endDate = dft.format(date.getTime());
        return endDate;
    }

    // 获取"yyyyMMdd"格式时间改变天数
    public static String getCurrentDateChangeDay(int day) {
        SimpleDateFormat dft = new SimpleDateFormat(WITHOUTTIME_DATE_PATTERN);
        Calendar date = Calendar.getInstance();
        date.add(Calendar.DAY_OF_MONTH, day);
        String endDate = dft.format(date.getTime());
        return endDate;
    }

    // 指定"yyyy-MM-dd"格式时间并改变添加、减少指定月份
    public static String DesignatedDateChangeMonth(String datetime, int month) {
        try {
            Date dft = new SimpleDateFormat(WITHOUTTIME_DATE_PATTERN).parse(datetime);
            SimpleDateFormat simdate = new SimpleDateFormat(WITHOUTTIME_DATE_PATTERN);
            Calendar date = Calendar.getInstance();
            date.setTime(dft);
            date.add(Calendar.MONTH, month);
            String endDate = simdate.format(date.getTime());
            return endDate;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    // 指定"yyyy-MM-dd"格式时间并改变添加、减少指定月份
    public static String Designated_year_month_day_ChangeMonth(String datetime,
            int month) {
        try {
            Date dft = new SimpleDateFormat(year_month_day).parse(datetime);
            SimpleDateFormat simdate = new SimpleDateFormat(year_month_day);
            Calendar date = Calendar.getInstance();
            date.setTime(dft);
            date.add(Calendar.MONTH, month);
            String endDate = simdate.format(date.getTime());
            return endDate;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    // 指定"yyyy-MM-dd"格式时间并改变添加、减少指定月份
    public static String DesignatedDateTimeChangeMonth(String datetime,
            int month) {
        try {
            Date dft = new SimpleDateFormat(ZH_CN_DATETIME_PATTERN)
                    .parse(datetime);
            SimpleDateFormat simdate = new SimpleDateFormat(
                    ZH_CN_DATETIME_PATTERN);
            Calendar date = Calendar.getInstance();
            date.setTime(dft);
            date.add(Calendar.MONTH, month);
            String endDate = simdate.format(date.getTime());
            return endDate;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    
    // 指定"yyyy-MM-dd"格式时间并改变添加、减少指定日
        public static String DesignatedDateTimeChangeDay(String datetime,int day) {
            try {
                Date dft = new SimpleDateFormat(ZH_CN_DATETIME_PATTERN).parse(datetime);
                SimpleDateFormat simdate = new SimpleDateFormat(ZH_CN_DATETIME_PATTERN);
                Calendar date = Calendar.getInstance();
                date.setTime(dft);
                date.add(Calendar.DAY_OF_MONTH, day);
                String endDate = simdate.format(date.getTime());
                return endDate;
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return null;
        }
    
    public static int getDayD_VALUE(String begin,String end){
        try {
            Date from = new SimpleDateFormat(ZH_CN_DATETIME_PATTERN).parse(begin);
            Date to =   new SimpleDateFormat(ZH_CN_DATETIME_PATTERN).parse(end);
            int day=(int) ((to.getTime()-from.getTime())/(1000*60*60*24));
            return day;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return 0;
    }
    
    public static int getDayD_VALUE_year_month_day(String begin,String end){
        try {
            Date from = new SimpleDateFormat(year_month_day).parse(begin);
            Date to =   new SimpleDateFormat(year_month_day).parse(end);
            int day=(int) ((to.getTime()-from.getTime())/(1000*60*60*24));
            return day;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return 0;
    }
    
    public static int getDayyyyyMMddHHmmssD_VALUE(String begin,String end){
        try {
            Date from = new SimpleDateFormat(yyyyMMddHHmmss).parse(begin);
            Date to =   new SimpleDateFormat(yyyyMMddHHmmss).parse(end);
            int day=(int) ((to.getTime()-from.getTime())/(1000*60));
            return day;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return 0;
    }
    public static String changeTimestampToSimpleDate(String timestamp,String geshi){
        Date date = new Date(Long.parseLong(timestamp));
        SimpleDateFormat ss = new SimpleDateFormat(geshi);
        String format = ss.format(date);
        return format;
    }
    


    public static void main(String[] args) {
        

//         System.out.println(BBDateUtil.getCurrent_year_month_day_ChangeDay(1));
//         System.out.println(BBDateUtil.getCurrentYear_month_dayChangeMonth(1));
//        System.out.println(BBDateUtil.Designated_year_month_day_ChangeMonth("2017-05-10",1));
//        System.out.println(BBDateUtil.getDayD_VALUE("2017-07-12 12:50:17","2017-07-05 00:00:00"));
//        System.out.println(BBDateUtil.getDayD_VALUE_year_month_day("2017-07-12","2017-07-15"));
//        System.out.println(BBDateUtil.getDayyyyyMMddHHmmssD_VALUE("20170615163142","20170615163144"));
//        System.out.println(BBDateUtil.getCurrentYear_month_dayChangeMonth(1));
//        System.out.println(BBDateUtil.getCurrentDatetoYear_month_day());
//        System.out.println(BBDateUtil.changeTimestampToSimpleDate("1502362822000","yyyy-MM-dd HH:mm:ss"));
    }

}

 

以上是关于java中时间处理的主要内容,如果未能解决你的问题,请参考以下文章

Java 中时间处理 System.currentTimeMillis()

java中时间的规范是按美国,SimpleDateFormat怎么处理

java中时间类(util Date)的后延与前推处理

Java中时间格式处理,指定N天/小时等之后的时间

Java8中时间日期库的20个常用使用示例

java中时间格式化输出