java日期获取前一天和后一天

本文介绍了一个简单的Java程序,展示了如何使用日期和时间API来获取指定日期的前一天和后一天。通过实例代码,详细解释了如何解析、格式化日期以及使用Calendar类进行日期操作。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {

public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String specifiedDay = sdf.format(date);
System.out.println(getSpecifiedDayBefore(specifiedDay));
System.out.println(getSpecifiedDayAfter(specifiedDay));
}

/**
* 获得指定日期的前一天
*
* @param specifiedDay
* @return
* @throws Exception
*/
public static String getSpecifiedDayBefore(String specifiedDay) {
Calendar c = Calendar.getInstance();
Date date = null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);

String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c
.getTime());
return dayBefore;
}

/**
* 获得指定日期的后一天
*
* @param specifiedDay
* @return
*/
public static String getSpecifiedDayAfter(String specifiedDay) {
Calendar c = Calendar.getInstance();
Date date = null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + 1);

String dayAfter = new SimpleDateFormat("yyyy-MM-dd")
.format(c.getTime());
return dayAfter;
}
}

Java 中,有多种方法可以获取日期前一天一天,以下为你详细介绍: ### 使用`Calendar`类结合`Date`类 `Calendar`类是 Java 早期处理日期时间的类,可以结合`Date`类来获取指定日期前一天一天。示例代码如下: ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateManipulation { public static String getDay(String time, int offset) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); Date date = null; try { date = sdf.parse(time); } catch (ParseException e) { e.printStackTrace(); } calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, offset); return sdf.format(calendar.getTime()); } public static void main(String[] args) { String currentDate = "2024-10-01"; String previousDay = getDay(currentDate, -1); String nextDay = getDay(currentDate, 1); System.out.println("前一天日期是:" + previousDay); System.out.println("后一天日期是:" + nextDay); } } ``` 在上述代码中,`getDay`方法接收一个日期字符串一个偏移量,通过`SimpleDateFormat`将字符串解析为`Date`对象,再使用`Calendar`类的`add`方法对日期进行偏移,最后将偏移后的`Date`对象格式化为字符串返回。 ### 使用 Java 8 及以后的新日期时间 API Java 8 引入了新的日期时间 API,如`LocalDate`,它提供了更简洁、更易用的日期操作方法。示例代码如下: ```java import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class NewDateManipulation { public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate currentDate = LocalDate.parse("2024-10-01", formatter); LocalDate previousDay = currentDate.minusDays(1); LocalDate nextDay = currentDate.plusDays(1); System.out.println("前一天日期是:" + previousDay.format(formatter)); System.out.println("后一天日期是:" + nextDay.format(formatter)); } } ``` 在上述代码中,使用`LocalDate`类的`parse`方法将日期字符串解析为`LocalDate`对象,然后使用`minusDays``plusDays`方法分别获取前一天一天日期,最后使用`DateTimeFormatter`将日期格式化为字符串输出。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值