Android如何获取明天的date

在我的Android应用程序…我需要显示明天的date..例如今天是3月5日,所以我需要显示为3月6日..我知道得到今天的date,月份和年份的代码..

算计

GregorianCalendar gc = new GregorianCalendar(); yearat = gc.get(Calendar.YEAR); yearstr = Integer.toString(yearat); monthat = gc.get(Calendar.MONTH) + 1; monthstr = Integer.toString(monthat); dayat = gc.get(Calendar.DAY_OF_MONTH); daystr = Integer.toString(dayat); 

如果我给代码

 dayat = gc.get(Calendar.DAY_OF_MONTH) + 1; 

是显示明天的date..或只是加一个今天的date…例如,如果今天是1月31日..如果我给上述代码将显示为1或32.如果是显示32,什么改变我需要在代码中做…请帮助..

  • Java月最后一天的问题
  • 具有月视图的Android自定义日历
  • 检查一个给定的时间是否在两次之间,不pipedate
  • 我如何添加一个新的手机日历到Android?
  • 以双数字格式显示date
  • 在android中自定义日历dayview
  • 两天之间的Android天
  • Android日历获取当前星期几作为string
    1. 获取今天的date作为Calendar

    2. 加1天。

    3. 用于显示目的的格式。

    例如,

     GregorianCalendar gc = new GregorianCalendar(); gc.add(Calendar.DATE, 1); // now do something with the calendar 

    使用下面的代码来显示明天的date

     Calendar calendar = Calendar.getInstance(); Date today = calendar.getTime(); calendar.add(Calendar.DAY_OF_YEAR, 1); Date tomorrow = calendar.getTime(); 

    使用SimpleDateFormat将date格式化为string:

     DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy"); String todayAsString = dateFormat.format(today); String tomorrowAsString = dateFormat.format(tomorrow); System.out.println(todayAsString); System.out.println(tomorrowAsString); 

    打印:

     05-Mar-2014 06-Mar-2014 
     Calendar calendar = Calendar.getInstance(); Date today = calendar.getTime(); calendar.add(Calendar.DAY_OF_YEAR, 1); Date tomorrow = calendar.getTime(); 

    java.util.Datejava.util.Calendar是可怕的工作。 我build议你使用具有更清洁/更好的API的JodaTime。 JodaTime现在是相当标准的。

    http://www.joda.org/joda-time/#Why_Joda-Time

    请注意,JDK 8将引入受JodaTime影响很大的新date/时间API。

    您必须在日历日添加1。

     GregorianCalendar gc = new GregorianCalendar(); gc.add(Calendar.DATE, 1); 

    第一个答案几乎涵盖了可能性。 但在这里可以从org.apache.commons.lang.time中使用另一个解决scheme:

     Date lTomorrow = DateUtils.addDays(new Date(), 1); 

    其他选项:

     Calendar tomorrow = Calendar.getInstance(); tomorrow.roll(Calendar.DATE, true); 

    要么

     tomorrow.roll(Calendar.DATE, 1); 

    还可以通过传递一个负数来回滚,例如:

     Calendar yesterday = Calendar.getInstance(); yesterday.roll(Calendar.DATE, -1); 

    java.util.Date和.Calendar类是非常麻烦的。 避免他们。 而是使用Joda-Time库或与Java 8捆绑的新java.time包 。

    使用Joda-Time 2.3库的一些示例代码。

     DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" ); DateTime now = new DateTime( timeZone ); DateTime tomorrow = now.plusDays( 1 ); String output = DateTimeFormat.forPattern( "FF" ).withLocale(Locale.FRANCE).print( tomorrow ); 

    通过使用日历获取今天的date,然后添加1天。

    像这样试试

     dayat = gc.add(Calendar.DATE, 1);