java根据身份证截取出生年月组合成2021-01-01形式
时间: 2023-07-09 11:47:15 浏览: 115
可以使用Java中的SimpleDateFormat类将身份证中的出生日期转换成指定格式的字符串。具体步骤如下:
1. 从身份证号中截取出生日期部分,例如:
```
String idCard = "123456199001011234"; // 身份证号
String birthday = idCard.substring(6, 14); // 截取出生日期部分,格式为yyyyMMdd
```
2. 使用SimpleDateFormat类将日期格式化成指定格式的字符串,例如:
```
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
String formattedBirthday = sdf2.format(sdf1.parse(birthday)); // 将出生日期从yyyyMMdd转换成yyyy-MM-dd
```
最终得到的formattedBirthday字符串即为形如"2021-01-01"的格式化后的出生日期。
相关问题
java从身份证号中截取出生年月日,以xxxx年xx月xx日的形式输出,截取出性别,男为奇数女为偶数
可以使用正则表达式来匹配身份证号,然后截取出生年月日和性别。以下是一个简单的实现:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IdCardUtils {
private static final Pattern ID_CARD_PATTERN = Pattern.compile(
"^\\d{6}(\\d{4})(\\d{2})(\\d{2})\\d{2}(\\d{1})(\\d|X|x)$");
public static String getBirthDate(String idCardNo) {
Matcher matcher = ID_CARD_PATTERN.matcher(idCardNo);
if (matcher.matches()) {
String year = matcher.group(1);
String month = matcher.group(2);
String day = matcher.group(3);
return String.format("%s年%s月%s日", year, month, day);
}
return null;
}
public static int getGender(String idCardNo) {
Matcher matcher = ID_CARD_PATTERN.matcher(idCardNo);
if (matcher.matches()) {
String genderStr = matcher.group(5);
int gender = Integer.parseInt(genderStr);
return gender % 2 == 0 ? 2 : 1; // 奇数为男,偶数为女
}
return -1;
}
public static void main(String[] args) {
String idCardNo = "11010119900307771X";
String birthDate = getBirthDate(idCardNo);
int gender = getGender(idCardNo);
System.out.println("出生日期:" + birthDate);
System.out.println("性别:" + (gender == 1 ? "男" : "女"));
}
}
```
输出结果为:
```
出生日期:1990年03月07日
性别:男
```
需要注意的是,这只是一个简单的实现,实际上身份证号的格式可能会有所不同,例如有些身份证号码中间可能会有空格。在实际使用中需要根据具体情况进行适当的修改。
截取生份证号码的出生年月信息,并转换成yyyy-MM-dd格式的java代码
以下是Java代码:
```java
String idCard = "110101199003075555"; // 假设身份证号码为110101199003075555
String birthday = idCard.substring(6, 14); // 截取出生年月信息,即第7位到第14位
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date date = sdf.parse(birthday); // 将出生年月信息转换成Date类型
sdf.applyPattern("yyyy-MM-dd");
String formattedBirthday = sdf.format(date); // 将Date类型的出生年月信息转换成yyyy-MM-dd格式的字符串
System.out.println(formattedBirthday); // 输出结果为1990-03-07
```
注意:以上代码仅供参考,实际使用时需要根据具体情况进行调整。
阅读全文