java 获取前n天时间
时间: 2023-07-12 15:49:58 浏览: 329
可以使用 Java 中的 Calendar 类来获取前 n 天的时间。以下是一个示例代码:
```java
Calendar calendar = Calendar.getInstance();
int n = 7; // 获取前7天的时间
calendar.add(Calendar.DATE, -n);
Date date = calendar.getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String strDate = dateFormat.format(date);
System.out.println(strDate);
```
在上面的代码中,我们使用 `Calendar.getInstance()` 获取了一个当前时间的实例,然后使用 `calendar.add(Calendar.DATE, -n)` 来将当前时间往前推 n 天。最后,我们可以使用 `calendar.getTime()` 将 Calendar 类型的时间转换成 Date 类型的时间,并使用 SimpleDateFormat 将 Date 类型的时间转换成字符串类型的时间,以便输出或者使用。
相关问题
java 获取当前时间前n天集合
以下是Java获取当前时间前n天集合的代码示例:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
int n = 3; // 前n天
List<String> pastDaysList = new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
for (int i = 1; i <= n; i++) {
LocalDate pastDay = LocalDate.now().minusDays(i); pastDaysList.add(pastDay.format(formatter));
}
System.out.println(pastDaysList);
}
}
```
运行结果:
```
[2022-05-06, 2022-05-05, 2022-05-04]
```
代码解释:
1. 首先定义一个整型变量n,表示前n天。
2. 创建一个字符串类型的List集合pastDaysList,用于存储前n天的日期。
3. 创建一个DateTimeFormatter对象formatter,用于格式化日期。
4. 使用for循环遍历前n天的日期,每次循环将当前日期减去i天,然后将其格式化为字符串并添加到pastDaysList中。
5. 最后输出pastDaysList即可。
java 获取几天前时间
### Java 获取指定天数之前的时间戳或日期字符串
为了获取几天前的时间,在Java中可以使用`Calendar`类来操作时间。通过设置当前时间为基准,减去所需的天数,再转换成所需格式返回。
对于获取前几天的时间戳:
```java
import java.util.Calendar;
public class TimeExample {
public static long getTimestampDaysBefore(int days) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -days);
return calendar.getTimeInMillis(); // 获得对应的时间戳[^1]
}
}
```
如果目标是得到日期字符串,则可以在上述基础上进一步处理,利用`SimpleDateFormat`来进行格式化输出:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DateStringExample {
public static String getDateStrDaysBefore(int days) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -days);
return sdf.format(calendar.getTime());
}
}
```
另外一种方式是采用`LocalDateTime`配合`Duration`或者`Period`实现更现代化的操作模式,这里给出基于`LocalDateTime`的例子:
```java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class ModernDateExample {
public static String getFormattedDateNDaysAgo(int n) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now().minusDays(n);
return now.format(formatter);
}
public static long getTimeMillisNDaysAgo(int n){
return LocalDateTime.now()
.minusDays(n)
.atZone(ZoneId.systemDefault())
.toInstant()
.toEpochMilli();
}
}
```
阅读全文
相关推荐













