`

java 已知一个Date(),获取前一天和后一天

    博客分类:
  • JAVA
 
阅读更多
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) {//可以用new Date().toLocalString()传递参数
        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;
    }
}

 

分享到:
评论

相关推荐

    输入年月日,并打印出该月的日历,并显出星期,在日历上标出该日

    为了更方便地处理日期相关的逻辑,通常会创建一个自定义的`Date`类(注意不要与Java内置的`java.util.Date`混淆)。在这个类中,可以定义表示年、月、日的属性,并提供构造函数来初始化这些属性。通过这样的封装,...

    oracle内置函数

    4. **New_Time(date, OldZone, NewZone)**: 将一个已知时区的日期转换到另一个时区,支持多种时区字符串,如ADT(大西洋夏令时)、CST(中部标准时间)等。 5. **Next_Day(date, weekday)**: 返回从指定日期开始的...

    我的日期算法自己写的!呵呵!

    在Java中,`java.util.Calendar`类提供了对日期和时间的高级操作能力,它是一个抽象类,通过其子类如`GregorianCalendar`来具体实现日期和时间的计算。在代码片段中,`Calendar.getInstance()`方法被用来获取当前...

    2021-2022计算机二级等级考试试题及答案No.2798.docx

    4. SQL中的Between语句用于指定一个范围,正确的准则应该是`Between Date() And Date()-20`,表示查找工作时间在当前日期到20天前之间的记录。 5. Java语言的浮点型数据包括float和double,其中double精度更高,...

    2021-2022计算机二级等级考试试题及答案No.16019.docx

    1. **日期函数**:在数据库查询中,`Date()`函数用于获取当前日期,`Between`关键字用于指定一个范围。题目中正确答案C表示查找工作时间在当前日期和20天前之间的记录。 2. **剪贴板操作**:剪切和复制操作是操作...

    2021-2022计算机二级等级考试试题及答案No.18868.docx

    - **定义**:多态是指在面向对象编程中,一个接口可以有多种不同的实现方式。具体来说,在同一方法中,根据参数类型的差异导致不同的执行效果,这种现象被称为多态。 - **应用场景**:多态常用于提高代码的复用性和...

Global site tag (gtag.js) - Google Analytics