在Java中為日期增加一天的多種方法
前言
在本教程中,我們將學(xué)習(xí)如何在 Java 中將日期增加一天。這可以通過使用各種方法來完成,例如 plusDays 方法,Calendar 類方法,向 Date 對象添加毫秒以及 Instant class 方法。如果你使用的是 Java 1.8 或更高版本,我們建議使用 plusDays 方法。
一、用 plusDays() 方法將 Java 中的日期增加一天
在 Java 1.8 及更高版本中,新的 java.time 類(即 LocalDate,LocalDateTime)具有 plusDays 和 minusDays 方法,可從任何時(shí)間實(shí)例中添加和減去時(shí)間單位。
示例代碼:
// java 1.8 package simpletesting; import java.time.LocalDateTime; public class SimpleTesting { public static void main(String[] args) { LocalDateTime today = LocalDateTime.now(); //Today LocalDateTime tomorrow = today.plusDays(1); //Plus 1 day LocalDateTime yesterday = today.minusDays(1); //Minus 1 day System.out.println("Today: "+today); System.out.println("Tomorrow: "+tomorrow); System.out.println("Yesterday: "+yesterday); } }
輸出:
Today: 2020-03-22T19:01:00.728
Tomorrow: 2020-03-23T19:01:00.728
Yesterday: 2020-03-21T19:01:00.728
二、用 Calendar 方法將 Java 中的日期增加一天
我們可以使用日歷 Calendar 類向 Java 中的日期添加一天。只需在日歷類實(shí)例中添加一天即可完成:
代碼如下(示例):
// java 1.8 package simpletesting; import java.util.Calendar; import java.util.Date; public class SimpleTesting { public static void main(String[] args) { Date dt = new Date(); System.out.println("Today: "+dt); Calendar c = Calendar.getInstance(); c.setTime(dt); c.add(Calendar.DATE, 1); dt = c.getTime(); System.out.println("Tomorrow: "+dt); } }
輸出:
Today: Sun Mar 22 19:07:48 PKT 2020
Tomorrow: Mon Mar 23 19:07:48 PKT 2020
三、用 Milliseconds 方法將 Java 中的日期增加一天
Java 日期有一個(gè)使用毫秒的構(gòu)造函數(shù)。getTime() 方法為我們提供了該值。因此,增加一天的毫秒數(shù)將為 Date 添加一天。
代碼:
代碼如下(示例):
// java 1.8 package simpletesting; import java.util.Date; public class SimpleTesting { public static void main(String[] args) { Date dt = new Date(); System.out.println("Today: " + dt); Date tomorrow = new Date(dt.getTime() + (1000 * 60 * 60 * 24)); System.out.println("Tomorrow: " + tomorrow); } }
輸出:
Today: Sun Mar 22 19:15:27 PKT 2020
Tomorrow: Mon Mar 23 19:15:27 PKT 2020
請注意,如果我們使用帶有夏令時(shí)的日歷時(shí)區(qū),則可能不會(huì)跳到第二天。
四、用 Instant 類向 Java 日期添加一天
Java Instant 類幾乎等同于日期。Instant 解析為納秒。instant.plus 方法將給定的天數(shù)添加到 Date 中。
代碼:
// java 1.8 package simpletesting; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.Date; public class SimpleTesting { public static void main(String[] args) { Date dt = new Date(); System.out.println("Today: " + dt); Instant instant = dt.toInstant(); Instant nextDay = instant.plus(1, ChronoUnit.DAYS); System.out.println("Tomorrow: " + nextDay); } }
輸出:
Today: Sun Mar 22 19:19:58 PKT 2020
Tomorrow: 2020-03-23T14:19:58.072Z
總結(jié)
可以使用 java.util.Calendar 類來實(shí)現(xiàn)這個(gè)功能。以下是一個(gè)簡單的示例:
import java.util.Calendar; import java.util.Date; public class AddOneDay { public static void main(String[] args) { // 創(chuàng)建一個(gè) Calendar 實(shí)例 Calendar calendar = Calendar.getInstance(); // 獲取當(dāng)前日期 Date currentDate = new Date(); System.out.println("當(dāng)前日期: " + currentDate); // 將 Calendar 設(shè)置為當(dāng)前日期 calendar.setTime(currentDate); // 為 Calendar 增加一天 calendar.add(Calendar.DATE, 1); // 獲取增加一天后的日期 Date nextDate = calendar.getTime(); System.out.println("增加一天后的日期: " + nextDate); } }
在這個(gè)示例中,我們首先創(chuàng)建了一個(gè) Calendar 實(shí)例,并將其設(shè)置為當(dāng)前日期。然后,我們使用 add 方法為日期增加一天。最后,我們使用 getTime 方法獲取增加一天后的日期。
補(bǔ)充知識(shí):JAVA根據(jù)時(shí)間增加1天
業(yè)務(wù)場景
在JAVA業(yè)務(wù)代碼中,經(jīng)常會(huì)遇到通過指定時(shí)間,增加指定天數(shù)的業(yè)務(wù)需求。話不多說,直接上代碼:
String time = "2021-12-1"; //指定時(shí)間 int day = 30;//指定增加天數(shù) SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); Date timeNow = sf.parse(time); Calendar c = Calendar.getInstance(); c.setTime(timeNow); System.out.println("當(dāng)前日期:"+sf.format(timeNow)); c.add(Calendar.DAY_OF_MONTH, day); System.out.println("增加后日期:"+sf.format(c.getTime()));
執(zhí)行結(jié)果
到此這篇關(guān)于在Java中為日期增加一天的文章就介紹到這了,更多相關(guān)Java日期增加一天內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實(shí)現(xiàn)接口防刷的兩種方法
接口被刷指的是同一接口被頻繁調(diào)用,可能是由于以下原因?qū)е拢簮阂夤艉驼`操作或程序錯(cuò)誤,本文給大家介紹了SpringBoot實(shí)現(xiàn)接口防刷的兩種方法,并有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-06-06Java編程在ICPC快速IO實(shí)現(xiàn)源碼
這篇文章主要介紹了Java Fast IO in ICPC實(shí)現(xiàn)源碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-09-09Java中List常用操作比for循環(huán)更優(yōu)雅的寫法示例
List是Java中比較常用的集合類,關(guān)于List接口有很多實(shí)現(xiàn)類,下面這篇文章主要給大家介紹了關(guān)于Java中List常用操作比for循環(huán)更優(yōu)雅的寫法,需要的朋友可以參考下2021-11-11java實(shí)現(xiàn)ModbusCRC16校驗(yàn)的示例代碼
本文介紹了使用Java實(shí)現(xiàn)ModbusCRC16校驗(yàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11java數(shù)據(jù)結(jié)構(gòu)與算法數(shù)組模擬隊(duì)列示例詳解
這篇文章主要為大家介紹了java數(shù)據(jù)結(jié)構(gòu)與算法數(shù)組模擬隊(duì)列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Java中volatile關(guān)鍵字的作用是什么舉例詳解
這篇文章主要介紹了Java中volatile關(guān)鍵字的作用是什么的相關(guān)資料,volatile關(guān)鍵字在Java中用于修飾變量,提供可見性和禁止指令重排的特性,但不保證原子性,它通過內(nèi)存屏障實(shí)現(xiàn)這些特性,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04