最近開發工作過程中遇到一些日期時間相關的問題,發現有些東西都忘了,空閑的時候整理了一下,寫了一個工具類。
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);
return dateStr;
}
/**
* 通過字符串獲取時間
* @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 String getByLong(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();
}
}
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/225946.html
微信掃一掃
支付寶掃一掃