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);
	}

}

本文说明:该文章属于原创,如需转载,请标明文章转载来源

猜你喜欢

转载自blog.csdn.net/p812438109/article/details/81188154