【发布时间】:2017-09-11 08:34:44
【问题描述】:
我想根据用户选择的持续时间添加月数。
我编写了以下代码,它采用当前日期并根据用户选择的持续时间添加月份,但我希望它采用从前端传递的开始日期并根据持续时间添加月份。
String le=ra.getLease_period(); //duration
String ls=ra.getLeasestart(); // start date
if (le.equals("1"))
{
final SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd" );
final Date dur1 = df.parse( ls ); // conversion from String
System.out.println("Start date passed is:" + dur1);
String m = df.format(dur1);
System.out.println("Formatted dur1 is" + m);
final java.util.Calendar cal1 = GregorianCalendar.getInstance();
cal1.setTime( date );
cal1.add(GregorianCalendar.MONTH, 1 ); // date manipulation
System.out.println( "result: " + df.format( cal1.getTime() ) );
ra.setLeaseend(df.format( cal1.getTime() ));
}
【问题讨论】:
-
您是否仅限于 Java 7?最好使用 Java 8 的
java.time包来做到这一点。 -
为什么要将日期存储在字符串中?
-
joda.org/joda-time 如果您不使用 Java8,Joda Time 是一个很棒的库。
-
当前输出是多少?预期的输出是什么?
-
还有 Pra,无论您选择 Java 8 或 9 中的
java.time,Java 6 或 7 或 Joda-Time 的 ThreeTen Backport,我当然建议您放弃过时的类SimpleDateFormat和 @987654326 @。现代替代品更易于使用,并且都提供了更好的支持来增加日期的月份数。
标签: java date calendar date-formatting date-parsing