java根据时间戳计算年龄
时间: 2023-12-30 17:43:13 浏览: 242
以下是Java代码,根据时间戳计算年龄:
```
public static int calculateAge(long timestamp) {
LocalDate birthdate = Instant.ofEpochMilli(timestamp)
.atZone(ZoneId.systemDefault())
.toLocalDate();
LocalDate currentDate = LocalDate.now();
return Period.between(birthdate, currentDate).getYears();
}
```
使用示例:
```
long timestamp = 946656000000L; // 2000年1月1日的时间戳
int age = calculateAge(timestamp);
System.out.println(age); // 输出:21
```
解释一下代码:
- `Instant.ofEpochMilli(timestamp)` 将时间戳转换为`Instant`对象;
- `.atZone(ZoneId.systemDefault())` 将`Instant`对象转换为当前时区下的`ZonedDateTime`对象;
- `.toLocalDate()` 将`ZonedDateTime`对象转换为当地日期;
- `Period.between(birthdate, currentDate).getYears()` 计算生日和当前日期之间的差距,并返回年龄。
阅读全文