![](/img/trans.png)
[英]How I update a particular Flag in a table based on difference of dates(date from another table and currentdate) as 'Y' in mysql database using java
[英]How to get previous 7 dates from a particular date in java?I am getting 7 dates from present date, but I want from particular date
//explain
public class DateLoop {
static String finalDate;
static String particularDate;
public static void main(String[] args) {
// TODO Auto-generated method stub
SimpleDateFormat sdf = new SimpleDateFormat("d-M-yyyy ");
Calendar cal = Calendar.getInstance();
particularDate = "2-1-2018";
// get starting date
cal.add(Calendar.DAY_OF_YEAR, -7);
// loop adding one day in each iteration
for(int i = 0; i< 7; i++){
cal.add(Calendar.DAY_OF_YEAR, 1);
finalDate =sdf.format(cal.getTime());
System.out.println(finalDate);
//ie, its giving previous 7 dates from present date, but I want
//particular date... thanks in advance
}
}
}
即,它给从当前日期的前7个日期,但我想要从特定日期的前7个日期。
LocalDate.of( 2018 , Month.JANUARY , 23 )
.minusDays( … )
您正在使用麻烦的旧日期时间类,这些类现在已被遗留,由java.time类取代。
使用LocalDate
表示仅日期,没有日期。
使用Month
枚举。
LocalDate start = LocalDate.of( 2018 , Month.JANUARY , 23 ) ; // 2018-01-23.
使用月份数字,1月至12月为1-12。
LocalDate start = LocalDate.of( 2018 , 1 , 23 ) ; // 2018-01-23.
收集日期序列。
List<LocalDate> dates = new ArrayList<>( 7 ) ;
for( int i = 1 ; i <= 7 ; i ++ ) {
LocalDate ld = start.minusDays( i ) ; // Determine previous date.
dates.add( ld ) ; // Add that date object to the list.
}
对于较早的Android,请使用ThreeTen- Backport和ThreeTenABP项目。
正如Uta Alexandru和Basil Bourque已经说过的,不要使用过长的类SimpleDateFormat
和Calendar
。 现代Java日期和时间API(也称为JSR-310) java.time
可以更好地使用:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d-M-uuuu");
LocalDate date = LocalDate.parse("2-1-2018", dtf)
.minusDays(7);
for(int i = 0; i < 7; i++) {
date = date.plusDays(1);
String finalDate = date.format(dtf);
System.out.println(finalDate);
}
打印:
27-12-2017
28-12-2017
29-12-2017
30-12-2017
31-12-2017
1-1-2018
2-1-2018
该代码不仅稍微更简单,更短,更重要的是,它更清晰,更自然。
java.time
吗? 当然可以。 它至少需要Java 6 。
java.time
。 如果您想从某些数据中获取日期,请执行以下操作。
public void dateFromRandomDate(String date){
SimpleDateFormat formatter2=new SimpleDateFormat("dd-MMM-yyyy");
Date date2=formatter2.parse(date);
Calendar calendar = Calendar.getInstance();
//this sets the date to given date
calendar.calendar.setTime(date2);
//now call getTime() or add ,subtract date from here
//this will add 1 year to given one,similarlly others will work.
calendar.add(Calendar.YEAR,1);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.