gpt4 book ai didi

java - 我怎样才能在 Java 中按升序获取从当天开始的最后 7 天?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:21 25 4
gpt4 key购买 nike

我使用以下代码获取最近 7 天:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
String[] days = new String[6];
days[0] = sdf.format(date);

for(int i = 1; i < 6; i++){
cal.add(Calendar.DAY_OF_MONTH, -1);
date = cal.getTime();
days[i] = sdf.format(date);
}

for(String x: days){
System.out.println(x);
}

这给出了以下输出:

2016-04-14
2016-04-13
2016-04-12
2016-04-11
2016-04-10
2016-04-09

但我想要这个:

2016-04-09
2016-04-10
2016-04-11
2016-04-12
2016-04-13
2016-04-14

如果我在代码下方使用以下行,它将给我正确的顺序:

List<String> list = Arrays.asList(days);
Collections.reverse(list);
days = (String[]) list.toArray();

for(String x: days){
System.out.println(x);
}

但是有没有其他方法可以一次获得最后 7 天的升序?

最佳答案

我会稍微简化你的方法,如果你想要这个输出你不需要创建一个 String[] 数组,要么循环两次,你可以用一个 实现同样的效果for 循环,一个CalendarSimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
Calendar cal = Calendar.getInstance();
// get starting date
cal.add(Calendar.DAY_OF_YEAR, -6);

// loop adding one day in each iteration
for(int i = 0; i< 6; i++){
cal.add(Calendar.DAY_OF_YEAR, 1);
System.out.println(sdf.format(cal.getTime()));
}

输出:

2016-04-09 
2016-04-10
2016-04-11
2016-04-12
2016-04-13
2016-04-14

Working IDEONE demo

关于java - 我怎样才能在 Java 中按升序获取从当天开始的最后 7 天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36621028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com