Java獲取時(shí)間如何將當(dāng)前時(shí)間減一天、一月、一年、并格式化
Java獲取時(shí)間,將當(dāng)前時(shí)間減一天、一月、一年,并加以格式化
一、普遍例子
1、代碼
void contextLoads() { Date date = new Date();//獲取當(dāng)前時(shí)間 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)前時(shí)間減去一天,即一天前的時(shí)間 System.out.println(simpleDateFormat.format(calendar.getTime())); Calendar calendar2 = Calendar.getInstance(); calendar2.add(Calendar.MONTH, -1);//當(dāng)前時(shí)間減去一個(gè)月,即一個(gè)月前的時(shí)間 System.out.println(simpleDateFormat.format(calendar2.getTime())); Calendar calendar3 = Calendar.getInstance(); calendar.add(Calendar.YEAR, -1);//當(dāng)前時(shí)間減去一年,即一年前的時(shí)間 System.out.println(simpleDateFormat.format(calendar3.getTime())); System.out.println(calendar.getTimeInMillis());//返回當(dāng)前時(shí)間的毫秒數(shù) }
2、效果
二、自定義方法
1、代碼
/** * 獲取某天的時(shí)間,支持自定義時(shí)間格式 * * @param simpleDateFormat 時(shí)間格式,yyyy-MM-dd HH:mm:ss * @param index 為正表示當(dāng)前時(shí)間加天數(shù),為負(fù)表示當(dāng)前時(shí)間減天數(shù) * @return String */ public static String getTimeDay(String simpleDateFormat, int index) { //設(shè)置時(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、效果
三、自定義工具類(lèi)
1、代碼
void contextLoads3() { Date now = DateUtil.now(); System.out.println("今天時(shí)間: " + DateUtil.formatDateTime(now)); System.out.println("昨天時(shí)間: " + DateUtil.formatDateTime(DateUtil.addDate(now, -1))); }
2、工具類(lèi)
詳細(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ì)算兩個(gè)日期相差天數(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ù)字 | 對(duì)應(yīng)操作 |
---|---|
1 | 年份 |
2 | 月份 |
3 | 星期 |
5 | 日期 |
11 | 小時(shí) |
12 | 分鐘 |
13 | 秒 |
14 | 毫秒 |
2、String轉(zhuǎn)換成Date后格式化成自定義時(shí)間格式的String類(lèi)型
void test12() { //SimpleDateFormat中的parse方法可以把特定格式的String型的字符串轉(zhuǎn)換成date類(lèi)型 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獲取時(shí)間,將當(dāng)前時(shí)間減一天、一月、一年,并加以格式化的文章就介紹到這了,更多相關(guān)java當(dāng)前時(shí)間減一天內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java怎么獲取當(dāng)前時(shí)間、計(jì)算程序運(yùn)行時(shí)間源碼詳解(超詳細(xì)!)
- Java獲取當(dāng)前時(shí)間的時(shí)間戳方法總結(jié)
- Java獲取當(dāng)前時(shí)間并轉(zhuǎn)化為yyyy-MM-dd?HH:mm:ss格式的多種方式
- Java獲取當(dāng)前時(shí)間的時(shí)間戳(13位和10位)
- java獲取當(dāng)前時(shí)間戳的方法
- 教你使用Java獲取當(dāng)前時(shí)間戳的詳細(xì)代碼
- Java如何獲取當(dāng)前時(shí)間的小時(shí)/分鐘(實(shí)現(xiàn)方法)
相關(guān)文章
Spring Security使用單點(diǎn)登錄的權(quán)限功能
本文主要介紹了Spring Security使用單點(diǎn)登錄的權(quán)限功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Springboot訪問(wèn)templates html頁(yè)面過(guò)程詳解
這篇文章主要介紹了Springboot訪問(wèn)templates html頁(yè)面過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05java實(shí)現(xiàn)查找PDF關(guān)鍵字所在頁(yè)碼及其坐標(biāo)
這篇文章主要介紹了java實(shí)現(xiàn)查找PDF關(guān)鍵字所在頁(yè)碼及其坐標(biāo)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Spring Boot獲取微信用戶(hù)信息的超簡(jiǎn)單方法
這篇文章主要給大家介紹了關(guān)于Spring Boot獲取微信用戶(hù)信息的超簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09java ArrayBlockingQueue的方法及缺點(diǎn)分析
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java ArrayBlockingQueue的方法及缺點(diǎn)分析,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。2021-01-01Spring?Boot整合log4j2日志配置的詳細(xì)教程
這篇文章主要介紹了SpringBoot項(xiàng)目中整合Log4j2日志框架的步驟和配置,包括常用日志框架的比較、配置參數(shù)介紹、Log4j2配置詳解以及使用步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02