java根据身份证截取出生年月组合成2021-01-01形式
时间: 2023-07-09 21:47:15 浏览: 55
可以使用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"的格式化后的出生日期。
相关问题
sql截取身份证出生日期并转为yyyy-mm-dd hh:mi:ss的时间格式
假设身份证号码的格式为18位数字,其中前6位为出生日期,例如:19900101 表示出生于1990年1月1日。
你可以使用以下SQL语句来截取身份证出生日期并转换为时间格式:
```
SELECT CONCAT(SUBSTR(id_card, 7, 4), '-', SUBSTR(id_card, 11, 2), '-', SUBSTR(id_card, 13, 2), ' 00:00:00') AS birthdate
FROM your_table;
```
解释一下上述SQL语句:
- `SUBSTR(id_card, 7, 4)` 表示从身份证号码的第7位开始截取4位数字,即出生年份。
- `SUBSTR(id_card, 11, 2)` 表示从身份证号码的第11位开始截取2位数字,即出生月份。
- `SUBSTR(id_card, 13, 2)` 表示从身份证号码的第13位开始截取2位数字,即出生日期。
- `CONCAT` 函数将上述三个部分合并成一个字符串,中间用 `'-'` 分隔,后面加上 `' 00:00:00'` 表示时间部分。
- `AS birthdate` 表示将上述字符串的别名设置为 `birthdate`。
需要注意的是,上述SQL语句中的 `your_table` 需要替换成你的表名。另外,如果身份证号码中的年份不是4位数字,或者你需要截取时间的时分秒部分,可以相应地修改上述SQL语句。
js 2023-09-01 00:00:00 截取年月
以下是JS截取年月的代码示例:
```javascript
let dateStr = "2023-09-01 00:00:00";
let yearMonth = dateStr.split(" ")[0].split("-").slice(0, 2).join("-");
console.log(yearMonth); // 输出:2023-09
```
代码解释:
1. 首先定义一个日期字符串变量`dateStr`,其值为"2023-09-01 00:00:00"。
2. 使用`split()`方法将日期字符串按照空格分割成日期和时间两部分,得到一个数组`["2023-09-01", "00:00:00"]`。
3. 再次使用`split()`方法将日期部分按照"-"分割成年、月、日三部分,得到一个数组`["2023", "09", "01"]`。
4. 使用`slice()`方法截取年、月两部分,得到一个数组`["2023", "09"]`。
5. 最后使用`join()`方法将年、月两部分用"-"连接成一个字符串,得到"2023-09"。