Java根据2000-08-29字符串得到年龄
时间: 2023-09-15 16:18:46 浏览: 166
要根据给定的日期计算年龄,您需要将字符串解析为日期对象,然后使用当前日期与出生日期之间的差异来计算年龄以下是一个示例代码:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
String dateString = "2000-08-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dateOfBirth = format.parse(dateString);
Calendar today = Calendar.getInstance();
Calendar birthDate = Calendar.getInstance();
birthDate.setTime(dateOfBirth);
int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
// 检查是否已过生日
if (today.get(Calendar.MONTH) < birthDate.get(Calendar.MONTH)) {
age--;
} else if (today.get(Calendar.MONTH) == birthDate.get(Calendar.MONTH)
&& today.get(Calendar.DAY_OF_MONTH) < birthDate.get(Calendar.DAY_OF_MONTH)) {
age--;
}
System.out.println("年龄:" + age);
} catch (ParseException e) {
System.out.println("日期解析错误:" + e.getMessage());
}
}
}
```
在上面的代码中,我们首先将日期字符串解析为Date对象。然后,我们创建了两个Calendar实例,一个用于当前日期(today),另一个用于出生日期(birthDate)。通过将日期对象设置到相应的Calendar实例中,我们可以比较两个日期并计算年龄差异。
通过计算当前年份与出生年份之间的差异,我们可以得到初始年龄。然后,我们检查当前月份和日期,如果生日尚未到来,则将年龄减1。
请注意,此示例假设日期字符串的格式为"yyyy-MM-dd",您可能需要根据实际情况调整格式字符串。
阅读全文