有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java减去起始日期后的年份:20140320

示例(Date) btDate.getTag() = 20140320;

如何从20140320中减去一年,并将结果设置为日期格式
例如,20140320结果=20130320


共 (2) 个答案

  1. # 1 楼答案

    在Java 8中,可以使用新的日期/时间类:

    你的职能:

    private String substractYears(final String dateFrom, final int yearsToSubstract) {
        final DateTimeFormatter dtf  = DateTimeFormatter.ofPattern("yyyyMMdd");
        final LocalDate         date = LocalDate.parse(dateFrom, dtf);       
    
        return dtf.format(date.minusYears(yearsToSubstract));
    }
    

    示例用法:

    System.out.printf("%s\n", substractYears("20140302", 1));
    


    将打印:20130302

  2. # 2 楼答案

    你可以按照我的定制方法来做

    private String getSubStractYear ( String date )
    {
        try
        {
            SimpleDateFormat sdf = new SimpleDateFormat ( "yyyyMMdd" );
            Date myDate = sdf.parse(date);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(myDate);
            calendar.add(Calendar.YEAR , -1 );
    
            return ( sdf.format( calendar.getTime() ) );
        }
        catch ( Exception e )
        {
            e.printStackTrace();
            return "";
        }
    }
    

    输入:20140320
    产出:20130320