如何在java中获取当前年份和上一年的月份?

时间:2014-02-27 12:22:32

标签: java sql datetime

我需要获得当前的月份,从此直到过去1个月没有生成报告。

例如:如果今天是2月,那么从2014年2月到2013年,我需要生成。

02 - 2014
01 - 2014
12 - 2013
11 - 2013
.
.
.
03 - 2013

我需要生成这个。任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:2)

您可能希望查看日历中的add方法,例如:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;


public class CalendarExample {

  public static void main(String[] args) {
    SimpleDateFormat sdf = new SimpleDateFormat("MM - yyyy");  
    Calendar calendar = new GregorianCalendar();
    System.out.println(sdf.format(calendar.getTime()));

    for (int i = 0; i < 11; i++) {
      calendar.add(Calendar.MONTH, -1);
      System.out.println(sdf.format(calendar.getTime()));
    }

  }
}

产生

02 - 2014
01 - 2014
12 - 2013
11 - 2013
10 - 2013
09 - 2013
08 - 2013
07 - 2013
06 - 2013
05 - 2013
04 - 2013
03 - 2013

答案 1 :(得分:0)

在这里,您将使用第三方开源Joda-Time框架。 Joda-Time是过时的†java.util.Date&amp; amp; .Calendar类与Java捆绑在一起。

DateTime now = DateTime.now(); // Current date-time using JVM's default time zone.
DateTime pastDate = null;
for ( int i = 0; i < 12; i++ ) {
    pastDate = now.minusMonths( i );
    String monthNumberAsString = String.format("%02d", pastDate.getMonthOfYear() ); // Pad leading zero if need be.
    System.out.println( monthNumberAsString + " - " + pastDate.getYear() );
}

生成

02 - 2014
01 - 2014
12 - 2013
11 - 2013
10 - 2013
09 - 2013
08 - 2013
07 - 2013
06 - 2013
05 - 2013
04 - 2013
03 - 2013

Java 8使新java.time package取代旧的java.util.Date/Calendar类。这些新课程的灵感来自Joda-Time,由JSR 310定义。

答案 2 :(得分:0)

如果您想要1年的回复日期,您可以使用:

 public static void main(String[] args){
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println(df.format(getPastDate()));

}

public static Date getPastDate(){
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)-1);
    calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH)+1);
    System.out.println(calendar.getTime());
    return calendar.getTime();
}

答案 3 :(得分:-2)

import java.util.*;
class dt
{
    Date d;
    String mon;         
    dt()
    {   d= new Date();
        mon = ""+(d.getMonth()+1)+"";
        System.out.println(" mon is "+);        
    }
    public static void main(String[]avi)
    {     new dt();   }
}

此代码将返回当前月份

喜欢...使用方法d.getYear()获取当前年份

注意:mon =“”+( d.getMonth()+ 1 )+“”; 在这个我已经添加了1个月,因为这个方法返回0 - &gt;为jan,1 - &gt;对于feb等...