Java獲取時間如何將當(dāng)前時間減一天、一月、一年、并格式化
更新時間:2023年09月08日 14:32:01 作者:李長淵哦
這篇文章主要介紹了Java獲取時間,將當(dāng)前時間減一天、一月、一年,并加以格式化,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
Java獲取時間,將當(dāng)前時間減一天、一月、一年,并加以格式化
一、普遍例子
1、代碼
void contextLoads() {
Date date = new Date();//獲取當(dāng)前時間
System.out.println(date);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置格式
Calendar calendar = Calendar.getInstance(); //創(chuàng)建Calendar 的實(shí)例
calendar.add(Calendar.DAY_OF_MONTH, -1); //當(dāng)前時間減去一天,即一天前的時間
System.out.println(simpleDateFormat.format(calendar.getTime()));
Calendar calendar2 = Calendar.getInstance();
calendar2.add(Calendar.MONTH, -1);//當(dāng)前時間減去一個月,即一個月前的時間
System.out.println(simpleDateFormat.format(calendar2.getTime()));
Calendar calendar3 = Calendar.getInstance();
calendar.add(Calendar.YEAR, -1);//當(dāng)前時間減去一年,即一年前的時間
System.out.println(simpleDateFormat.format(calendar3.getTime()));
System.out.println(calendar.getTimeInMillis());//返回當(dāng)前時間的毫秒數(shù)
}2、效果

二、自定義方法
1、代碼
/**
* 獲取某天的時間,支持自定義時間格式
*
* @param simpleDateFormat 時間格式,yyyy-MM-dd HH:mm:ss
* @param index 為正表示當(dāng)前時間加天數(shù),為負(fù)表示當(dāng)前時間減天數(shù)
* @return String
*/
public static String getTimeDay(String simpleDateFormat, int index) {
//設(shè)置時區(qū)
TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
TimeZone.setDefault(tz);
Calendar calendar = Calendar.getInstance();
SimpleDateFormat fmt = new SimpleDateFormat(simpleDateFormat);
calendar.add(Calendar.DAY_OF_MONTH, index);
String date = fmt.format(calendar.getTime());
return date;
}
/**
* 第二種使用自定義方法
*/
void contextLoads2() {
System.out.println(getTimeDay("yyyy-MM-dd HH:mm:ss", -1));
}2、效果

三、自定義工具類
1、代碼
void contextLoads3() {
Date now = DateUtil.now();
System.out.println("今天時間: " + DateUtil.formatDateTime(now));
System.out.println("昨天時間: " + DateUtil.formatDateTime(DateUtil.addDate(now, -1)));
}2、工具類
詳細(xì)可私聊
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @author lichangyuan
* @create 2021-12-15 11:30
*/
public class DateUtil {
public DateUtil() {
}
public static Date now() {
return new Date();
}
public static Date add(Date date, Integer field, Integer amount) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(field, amount);
return calendar.getTime();
}
public static Date addDate(Date date, Integer days) {
return add(date, 5, days);
}
public static String format(Date date, String format) {
if (date == null) {
return "";
} else {
if (isEmpty(format)) {
format = "yyyy-MM-dd";
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
}
public static String formatDateTime(Date date) {
return format(date, "yyyy-MM-dd HH:mm:ss");
}
/**
* 計(jì)算兩個日期相差天數(shù)
*
* @param smdate
* @param bdate
* @return
* @throws ParseException
*/
public static int daysBetween(Date smdate, Date bdate) {
long betweenDays = 0;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
smdate = sdf.parse(sdf.format(smdate));
bdate = sdf.parse(sdf.format(bdate));
Calendar cal = Calendar.getInstance();
cal.setTime(smdate);
long time1 = cal.getTimeInMillis();
cal.setTime(bdate);
long time2 = cal.getTimeInMillis();
betweenDays = (time2 - time1) / (1000 * 3600 * 24);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
return Integer.parseInt(String.valueOf(betweenDays));
}
}3、效果

四、補(bǔ)充
1、Calendar.add()方法參數(shù)
| 數(shù)字 | 對應(yīng)操作 |
|---|---|
| 1 | 年份 |
| 2 | 月份 |
| 3 | 星期 |
| 5 | 日期 |
| 11 | 小時 |
| 12 | 分鐘 |
| 13 | 秒 |
| 14 | 毫秒 |
2、String轉(zhuǎn)換成Date后格式化成自定義時間格式的String類型
void test12() {
//SimpleDateFormat中的parse方法可以把特定格式的String型的字符串轉(zhuǎn)換成date類型
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date newDate = sdf.parse("2022-12-01 13:00:00");
System.out.println(newDate);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy:MM:dd HH-mm-ss");
String format = sdf2.format(newDate);
System.out.println(format);
} catch (ParseException e) {
e.printStackTrace();
}
}
到此這篇關(guān)于Java獲取時間,將當(dāng)前時間減一天、一月、一年,并加以格式化的文章就介紹到這了,更多相關(guān)java當(dāng)前時間減一天內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+mybatis+Vue實(shí)現(xiàn)前后端分離項(xiàng)目的示例
本文主要介紹了SpringBoot+mybatis+Vue實(shí)現(xiàn)前后端分離項(xiàng)目的示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12
java實(shí)現(xiàn)文件上傳下載和圖片壓縮代碼示例
本文給大家介紹的是項(xiàng)目中經(jīng)常需要用到的一個常用的功能,使用java實(shí)現(xiàn)文件的上傳下載和圖片的壓縮功能,這里推薦給大家,有需要的小伙伴參考下。2015-03-03
Java實(shí)現(xiàn)在線預(yù)覽的示例代碼(openOffice實(shí)現(xiàn))
本篇文章主要介紹了Java實(shí)現(xiàn)在線預(yù)覽的示例代碼(openOffice實(shí)現(xiàn)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Idea中如何查看SpringSecurity各Filter信息
這篇文章主要介紹了Idea中如何查看SpringSecurity各Filter信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01

