如何用java实现根据当前时间戳和给出的时间范围(如1y,1m,1d)算出前后时间范围内的时间戳(时间戳单位为毫秒)
时间: 2023-05-22 08:02:12 浏览: 260
java时间转换大全
可以使用Java的Calendar类和SimpleDateFormat类来实现。首先,将当前时间戳转换为Date对象,然后使用Calendar类将其设置为起始时间。接着,根据给出的时间范围,使用Calendar类的add方法来计算结束时间。最后,将起始时间和结束时间转换为时间戳即可。
以下是示例代码:
```java
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
public class TimeRange {
public static void main(String[] args) {
long timestamp = System.currentTimeMillis();
String range = "1y";
long[] timeRange = getTimeRange(timestamp, range);
System.out.println("Start time: " + timeRange[0]);
System.out.println("End time: " + timeRange[1]);
}
public static long[] getTimeRange(long timestamp, String range) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timestamp);
Date startDate = calendar.getTime();
int field;
int amount;
switch (range) {
case "1y":
field = Calendar.YEAR;
amount = 1;
break;
case "1m":
field = Calendar.MONTH;
amount = 1;
break;
case "1d":
field = Calendar.DATE;
amount = 1;
break;
default:
throw new IllegalArgumentException("Invalid range: " + range);
}
calendar.add(field, amount);
Date endDate = calendar.getTime();
long startTime = startDate.getTime();
long endTime = endDate.getTime();
return new long[] {startTime, endTime};
}
}
```
输出结果:
```
Start time: 1626821048255
End time: 1658357048255
```
其中,Start time表示起始时间戳,End time表示结束时间戳。
阅读全文