如何在java中获取当前年度和上一年度的月份?
我需要得到当前月份的编号,从现在到过去1年的月份编号才能生成报告 例如:如果今天是2月,那么从2014年2月到2013年3月,我需要生成如何在java中获取当前年度和上一年度的月份?,java,sql,datetime,Java,Sql,Datetime,我需要得到当前月份的编号,从现在到过去1年的月份编号才能生成报告 例如:如果今天是2月,那么从2014年2月到2013年3月,我需要生成 02 - 2014 01 - 2014 12 - 2013 11 - 2013 . . . 03 - 2013 我需要生成这个。有人能帮我吗?这里是一个使用第三方开源框架的示例。Joda Time是与java捆绑的过时的†java.util.Date&Calendar类的流行替代品 DateTime now = DateTime.now(); // Curr
02 - 2014
01 - 2014
12 - 2013
11 - 2013
.
.
.
03 - 2013
我需要生成这个。有人能帮我吗?这里是一个使用第三方开源框架的示例。Joda Time是与java捆绑的过时的†java.util.Date&Calendar类的流行替代品
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() );
}
†引入新类以取代旧的java.util.Date/Calendar类。这些新类的灵感来源于,并由定义。您可能想看看calendar中的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()));
}
}
}
如果您想要正好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();
}
此代码将返回当月
像。。。使用方法d.getYear()获取当前年份
注:mon=“”+(d.getMonth()+1)+”;
在本文中,我添加了1个月,因为此方法返回0->1月,1->2月等等。为什么标记为SQL?还有什么是你忘了提的,还是标签错了?另外,首先自己动手编码通常是一种很好的方式。
我需要生成这个
是什么阻止了你?您还没有问过任何问题。如果您打算使用非标准API(jodatime)进行回答,最好在回答中至少提到这一点。或许可以解释一下为什么要使用第三方API而不是标准API(提供完全相同的功能)。
02 - 2014
01 - 2014
12 - 2013
11 - 2013
10 - 2013
09 - 2013
08 - 2013
07 - 2013
06 - 2013
05 - 2013
04 - 2013
03 - 2013
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();
}
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(); }
}