我需要回顾一些项目的90天,120天和160天。我该如何编码呢? 我一直在寻找java代码但是当我为android开发时会出现错误。
我需要采取今天的日期并减去x天数,并将结果显示在屏幕上没有别的。感谢
答案 0 :(得分:21)
您应该使用Calendar
类:
//Calendar set to the current date
Calendar calendar=Calendar.getInstance();
//rollback 90 days
calendar.add(Calendar.DAY_OF_YEAR, -90);
//now the date is 90 days back
Log.i("MyApp","90 days ago:"+calendar.getTime().toString());
答案 1 :(得分:7)
使用日历对象...
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -90); //etc
答案 2 :(得分:1)
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.minusDays( 90 )
此处的其他答案已过时。现代的方法是使用java.time类。
LocalDate
LocalDate
类表示没有时间且没有时区的仅限日期的值。
时区对于确定日期至关重要。对于任何给定的时刻,日期在全球范围内因地区而异。例如,在Paris France午夜后的几分钟是新的一天,而Montréal Québec中仍然是“昨天”。
ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate today = LocalDate.now( z ) ;
然后您可以添加或减去天数。
LocalDate ago090 = today.minusDays( 90 ) ;
LocalDate ago120 = today.minusDays( 120 ) ;
LocalDate ago160 = today.minusDays( 160 ) ;
要生成标准ISO 8601格式YYYY-MM-DD的字符串,请致电toString
。对于其他格式,请搜索DateTimeFormatter
类的Stack Overflow以查看许多示例和讨论。
String output = ago120.toString() ;
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和& SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
从哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。
答案 3 :(得分:0)
您应该可以使用Calendar
课程来实现您的目标:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Calendar.html。
然后,您可以使用当前日期.add(Calendar.DAY_OF_YEAR, -90);
调用日历对象,依此类推。