獲取某個時間前或者后的時間戳


1、程序代碼:

package com.my.date;

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

public class DateUtil {

    public static void main(String[] args) {

        String dateStr = "2021-11-25 10:15:00";

        // 一秒前
        System.out.println("一秒前: " + getDateAfterTime(dateStr, -1, Calendar.SECOND));
        // 一秒后
        System.out.println("一秒后: " + getDateAfterTime(dateStr, 1, Calendar.SECOND));

        // 一分鍾前
        System.out.println("一分鍾前: " + getDateAfterTime(dateStr, -1, Calendar.MINUTE));
        // 一分鍾后
        System.out.println("一分鍾后: " + getDateAfterTime(dateStr, 1, Calendar.MINUTE));

        // 一小時前
        System.out.println("一小時前: " + getDateAfterTime(dateStr, -1, Calendar.HOUR));
        // 一小時后
        System.out.println("一小時后: " + getDateAfterTime(dateStr, 1, Calendar.HOUR));

        // 一天前
        System.out.println("一天前: " + getDateAfterTime(dateStr, -1, Calendar.DAY_OF_MONTH));
        // 一天后
        System.out.println("一天后: " + getDateAfterTime(dateStr, 1, Calendar.DAY_OF_MONTH));

        // 一周前
        System.out.println("一周前: " + getDateAfterTime(dateStr, -1, Calendar.WEEK_OF_MONTH));
        // 一周后
        System.out.println("一周后: " + getDateAfterTime(dateStr, 1, Calendar.WEEK_OF_MONTH));

        // 一月前
        System.out.println("一月前: " + getDateAfterTime(dateStr, -1, Calendar.MONTH));
        // 一月后
        System.out.println("一月后: " + getDateAfterTime(dateStr, 1, Calendar.MONTH));

        // 一年前
        System.out.println("一年前: " + getDateAfterTime(dateStr, -1, Calendar.YEAR));
        // 一年后
        System.out.println("一年后: " + getDateAfterTime(dateStr, 1, Calendar.YEAR));
    }


    /**
     * 獲取某個時間,n 年/月/周/日/時/分/秒前或者后的時間
     * n為正時代表時間戳后的某個時間,n為負時代表時間戳前的某個時間,
     *
     * @param dateStr
     * @param time
     * @param timeType
     * @return
     */
    public static Date getDateAfterTime(String dateStr, int time, int timeType) {
        try {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Calendar cal = Calendar.getInstance();
            cal.setTime(df.parse(dateStr));
            cal.add(timeType, time);
            return cal.getTime();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 獲取某個時間,n 年/月/周/日/時/分/秒前或者后的時間
     * n為正時代表時間戳后的某個時間,n為負時代表時間戳前的某個時間,
     *
     * @param date
     * @param time
     * @param timeType
     * @return
     */
    public static Date getDateAfterTime(Date date, int time, int timeType) {
        try {
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(timeType, time);
            return cal.getTime();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

2、結果:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM