日期:2014-05-17  浏览次数:20804 次

java如何获取两年后的今天的日期
如题,想要在后台获取两年后的今天的日期,这个好像考虑到闰年啦什么的,可能会使日期不准确。因此,大家有没有好的方法,借来一用。

------最佳解决方案--------------------
想正规些,就用 Calendar,里面提供对 年、月、日 等 做 add() 运算。
------其他解决方案--------------------
想再懒点,就用apache的jar包: commons-lang.jar
里面的DateUtils有方法可以直接对年/月/日/时/分/秒  进行加减..  方便又快捷..
------其他解决方案--------------------
楼上正解,就用Calendar!
------其他解决方案--------------------
引用:
如题,想要在后台获取两年后的今天的日期,这个好像考虑到闰年啦什么的,可能会使日期不准确。因此,大家有没有好的方法,借来一用。


引用:
想再懒点,就用apache的jar包: commons-lang.jar
里面的DateUtils有方法可以直接对年/月/日/时/分/秒  进行加减..  方便又快捷..


引用:
想正规些,就用 Calendar,里面提供对 年、月、日 等 做 add() 运算。

都行
------其他解决方案--------------------
两年后的今天是如何理解?

今天是2012-11-14,两年后不是2014-11-14么,还是从2012-11-14算起,加365*2天
------其他解决方案--------------------
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar canlandar = Calendar.getInstance();
canlandar.setTime(date);
canlandar.add(canlandar.SECOND,10 );
String syncTime=df.format(canlandar.getTime()).toString();
System.out.println(syncTime);



canlandar.SECOND  这个是常量,可以设置 时分秒都行,后面就是加多少了,负数就是往前算 
------其他解决方案--------------------
根据大家的提示可以获得这样的结果,格式是“yyMMddHHmm”:

    public static String twoYearsTime(String fmt) {
Calendar cal = new GregorianCalendar();
int year = cal.get(Calendar.YEAR)+2;//yy  直接计算年数+2
int month = cal.get(Calendar.MONTH) + 1;//MM
int day = cal.get(Calendar.DATE);//dd
int hour = cal.get(Calendar.HOUR_OF_DAY);//HH
int minute = cal.get(Calendar.MINUTE);//mm

if (fmt.indexOf("yy") != -1) {
fmt = fmt.replaceAll("yy", String.valueOf(year).substring(2));
}
if (fmt.indexOf("MM") != -1) {
fmt = fmt.replaceAll("MM", month < 10 ? "0" + String.valueOf(month)
: String.valueOf(month));
}
if(fmt.indexOf("HH")!=-1){
fmt = fmt.replaceAll("HH", hour<10 ? "0" + String.valueOf(hour):String.valueOf(hour));
}
if (fmt.indexOf("dd") != -1) {
fmt = fmt.replaceAll("dd", day < 10 ? "0" + String.valueOf(day)
: String.valueOf(day));
}
if (fmt.indexOf("mm") != -1) {
fmt = fmt.replaceAll(
"mm",
minute < 10 ? "0" + String.valueOf(minute) : String
.valueOf(minute));
}
return fmt;
}

public static void main(String[] args) {
   String time = twoYearsTime("yyMMddHHmm");//预定格式为yyMMddHHmm
   System.out.println(time);
}