java獲取時間的年月日 java獲取日期的年月



文章插圖
java獲取時間的年月日 java獲取日期的年月

文章插圖
最近開發工作過程中遇到一些日期時間相關的問題,發現有些東西都忘了,空閑的時候整理了一下,寫了一個工具類 。
【java獲取時間的年月日 java獲取日期的年月】package com.utils;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateUtils {/*** 通過Date類獲取時間* @return*/public static String getDateByDate(){Date date = new Date();SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");String dateStr=dateFormat.format(date);System.out.println(dateStr);return dateStr;}/*** 通過Calendar類獲取時間* @return*/public static String getDateByCalendar(){Calendar calendar = Calendar.getInstance();Date date=calendar.getTime();SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");String dateStr=dateFormat.format(date);System.out.println(dateStr);returndateStr;}/*** 通過字符串獲取時間* @param dateStr* @return*/public static Date formString(String dateStr){SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");try {Date date=dateFormat.parse(dateStr);System.out.println(date);return date;} catch (ParseException e) {e.printStackTrace();}return null;}/*** 通過時間戳獲取時間* @param time* @return*/public static StringgetByLong(long time){SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");String date=dateFormat.format(time);return date;}/*** 獲取系統時間,時間戳* @return*/public static long getCurrentTime(){//方式一//Date date = new Date();//long time=date.getTime();//方式二long time=System.currentTimeMillis();return time;}/*** 獲取當前年月日* @return*/public static void getYearMonthDay(){//第一種,通過Calendar類獲取Calendar now = Calendar.getInstance();System.out.println("年: " + now.get(Calendar.YEAR));System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));System.out.println("時: " + now.get(Calendar.HOUR_OF_DAY));System.out.println("分: " + now.get(Calendar.MINUTE));System.out.println("秒: " + now.get(Calendar.SECOND));System.out.println("當前時間毫秒數:" + now.getTimeInMillis());//第二種,通過Date類獲取Date date = new Date();DateFormat df1 = DateFormat.getDateInstance();//日期格式,精確到日System.out.println(df1.format(date));DateFormat df2 = DateFormat.getDateTimeInstance();//可以精確到時分秒System.out.println(df2.format(date));DateFormat df3 = DateFormat.getTimeInstance();//只顯示出時分秒System.out.println("只顯示出時分秒:"+df3.format(date));DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //顯示日期,周,上下午,時間(精確到秒)System.out.println("顯示日期,周,上下午,時間(精確到秒):"+df4.format(date));DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //顯示日期,上下午,時間(精確到秒)System.out.println("顯示日期,上下午,時間(精確到秒):"+df5.format(date));DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //顯示日期,上下午,時間(精確到分)System.out.println("顯示日期,上下午,時間(精確到分):"+df6.format(date));DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //顯示日期,時間(精確到分)System.out.println("顯示日期,時間(精確到分):"+df7.format(date));String [] dates=new SimpleDateFormat("yyyy-MM-dd").format(date).split("-");String year=dates[0];String month=dates[1];String day=dates[2];String [] months=new SimpleDateFormat("HH:mm:ss").format(date).split(":");String hour=dates[0];String minute=dates[1];String seconde=dates[2];}/*** 獲取前一段時間/后一段時間*/public static void beforTime(){//根據現在時間計算Calendar now = Calendar.getInstance();now.add(Calendar.YEAR, 1); //現在時間是1年后System.out.println(now);now.add(Calendar.YEAR, -1); //現在時間是1年前System.out.println(now);//根據某個特定的時間 date (Date 型) 計算Calendar specialDate = Calendar.getInstance();specialDate.setTime(new Date()); //注意在此處將 specialDate 的值改為特定日期specialDate.add(Calendar.YEAR, 1); //特定時間的1年后System.out.println(specialDate);specialDate.add(Calendar.YEAR, -1); //特定時間的1年前System.out.println(specialDate);}/*** 計算兩個日期相差多少小時,分鐘,毫秒*/public static void betweenDay() throws ParseException {DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d1 = df.parse("2017-12-20 12:19:19");Date d2 = df.parse("2017-12-20 11:40:34");long nd = 1000 * 24 * 60 * 60;long nh = 1000 * 60 * 60;long nm = 1000 * 60;long ns = 1000;// 獲得兩個時間的毫秒時間差異long diff = d1.getTime() - d2.getTime();// 計算差多少天long day = diff / nd;// 計算差多少小時long hour = diff % nd / nh;// 計算差多少分鐘long min = diff % nd % nh / nm;// 計算差多少秒//輸出結果long sec = diff % nd % nh % nm / ns;System.out.println(day + "天" + hour + "小時" + min + "分鐘"+ sec + "秒");}public static void main(String[] args) {//getDateByDate();//formString("2021-15-27 15:42:44");//getYearMonthDay();}}