1. 程式人生 > >java SimpleDateFormat和Calendar類一些日期處理方法

java SimpleDateFormat和Calendar類一些日期處理方法

SimpleDateFormat和Calendar類一些日期處理方式,如下:

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

/**
 * 日期工具類
 * @author ouyangjun
 */
public class DateFormatTest {
	
	// 年-月-日 時:分:秒
	public static String DATE_PATTERN_1 = "yyyy-MM-dd HH:mm:ss";
	public static String DATE_PATTERN_2 = "yyyy/MM/dd HH:mm:ss";
	public static String DATE_PATTERN_3 = "yyyyMMddHHmmss";
	public static String DATE_PATTERN_4 = "yyyy-MM-dd";
	public static String DATE_PATTERN_5 = "yyyyMMddHHmmssSSS";
	
	/**
	 * 把日期轉換成24小時字串日期
	 * @param date
	 * @return
	 */
	public static String formatDate24(Date date) {
		SimpleDateFormat timeFt = new SimpleDateFormat(DATE_PATTERN_1);
		String timeStr = (date == null ? "" : timeFt.format(date));
		return timeStr;
	}
	
	/**
	 * 把時間戳轉換字元日期
	 * @param string
	 * @return
	 */
	public static String formatTimeStamp(long time) {
            return formatDate24(Date.from(Instant.ofEpochMilli(time)));
        }
	
	/**
	 * 把字元型時間戳轉換字元日期
	 * @param string
	 * @return
	 */
	public static String formatTimeStamp(String date) {
            if (date != null) {
                return null;
            }
            Long time = Long.valueOf(date);
            return formatDate24(Date.from(Instant.ofEpochMilli(time)));
        }
	
	/**
	 * 計算某一天的毫秒數
	 * @param day
	 * @return
	 */
	public static long calcTimeStamp(int day) {
		return day * 24 * 60 * 60 * 1000;
	}
	
	/** 
         * 獲取過去第幾天的日期,並把日期轉換成字元日期
         * @param past 
         * @return 
         */  
	public static String getPastDate(int past) {  
		Calendar calendar = Calendar.getInstance();  
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);  
		Date today = calendar.getTime();
		
		return formatDate24(today);
	}
	
	/** 
         * 獲取未來第幾天的日期,並把日期轉換成字元日期
         * @param next 
         * @return 
         */  
	public static String getNextDate(int next) {  
		Calendar calendar = Calendar.getInstance();  
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + next);  
		Date today = calendar.getTime();
		
		return formatDate24(today);
	}

	public static void main(String[] args) throws ParseException {
		Date date = new Date();
		
		String timeStr = formatDate24(date);
		System.out.println("把日期轉換成24小時字串日期: "+ timeStr);
		
		System.out.println("把時間戳轉換字元日期: "+ formatTimeStamp(date.getTime()));
		
		System.out.println("計算某一天的毫秒數: " + calcTimeStamp(7));
		
		System.out.println("獲取過去第幾天的日期,並把日期轉換成字元日期: " + getPastDate(7));
		
		System.out.println("獲取未來第幾天的日期,並把日期轉換成字元日期: " + getNextDate(7));
		
		//得到當前時間 
		Calendar cal = Calendar.getInstance();
		// 運算日期
		cal.add(Calendar.YEAR, 1);//年 
		cal.add(Calendar.MONTH, 1);//月 
		cal.add(Calendar.DATE, 1);//日 
		cal.add(Calendar.HOUR_OF_DAY, -1);//時 
		cal.add(Calendar.MINUTE, 1);//分 
		cal.add(Calendar.SECOND, 1);//秒 
		cal.add(Calendar.DATE, 7);//周 
		
		// 獲取日期
		int y = cal.get(Calendar.YEAR);//年 
		int m = cal.get(Calendar.MONTH);//月
		int d = cal.get(Calendar.DATE);//日 
		int h = cal.get(Calendar.HOUR_OF_DAY);//時 
		int min = cal.get(Calendar.MINUTE);//分 
		int second = cal.get(Calendar.SECOND);//秒 
		int week = cal.get(Calendar.DAY_OF_WEEK);//星期
		
		System.out.println("運算後的日期: "+ y+"-"+m+"-"+d+"-"+h+"-"+min+"-"+second+":"+week);
		
		// 設定日期
		cal.set(2018, 7, 24, 13, 44, 51);//年月日時分秒(月份0代表1月) 
		cal.set(Calendar.YEAR, 2018);//年 
		cal.set(Calendar.MONTH, 7);//月(月份0代表1月) 
		cal.set(Calendar.DATE, 24);//日 
		cal.set(Calendar.HOUR_OF_DAY, 16);//時 
		cal.set(Calendar.MINUTE, 47);//分 
		cal.set(Calendar.SECOND, 47);//秒
		
		// 獲取日期
		y = cal.get(Calendar.YEAR);//年 
		m = cal.get(Calendar.MONTH);//月
		d = cal.get(Calendar.DATE);//日 
		h = cal.get(Calendar.HOUR_OF_DAY);//時 
		min = cal.get(Calendar.MINUTE);//分 
		second = cal.get(Calendar.SECOND);//秒 
		week = cal.get(Calendar.DAY_OF_WEEK);//星期
		
		System.out.println("設定後的日期: "+ y+"-"+m+"-"+d+"-"+h+"-"+min+"-"+second+":"+week);
	}

}

本文說明:該文章屬於原創,如需轉載,請標明文章轉載來源