java SimpleDateFormat和Calendar類一些日期處理方法
阿新 • • 發佈:2019-02-01
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); } }
本文說明:該文章屬於原創,如需轉載,請標明文章轉載來源