From cbc1828ae240e37a37670f2760b80649c11679e2 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 11 八月 2025 08:58:56 +0800 Subject: [PATCH] zjh20250811 --- ltkj-admin/src/test/java/zjhTest.java | 35 ++++++++++++++++++++++++++++++++++- 1 files changed, 34 insertions(+), 1 deletions(-) diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java index 4f48657..bea1f4b 100644 --- a/ltkj-admin/src/test/java/zjhTest.java +++ b/ltkj-admin/src/test/java/zjhTest.java @@ -1,4 +1,5 @@ +import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import com.ltkj.LtkjApplication;import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.TjJcycxm; @@ -22,6 +23,9 @@ import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.io.BufferedReader; import java.io.InputStreamReader; @@ -34,6 +38,8 @@ import java.io.File; import java.io.IOException; +import static com.ltkj.framework.config.MatchUtils.getIdCardBirthDayStr; +import static com.ltkj.framework.config.MatchUtils.isIdCard; /** @@ -85,10 +91,37 @@ public static void main(String[] args) throws Exception { String s = "62272219610528411X"; - System.out.println(isValidIdCard(s) ? "鍚堟硶" : "闈炴硶"); + System.out.println(getBirthDayByIdCard(s)); } + + public static String getBirthDayByIdCard(String idCard) throws Exception { + if (!isIdCard(idCard)) { + throw new Exception("韬唤璇佷笉姝g‘"); + } + // 鑾峰彇韬唤璇佺殑鍑虹敓骞存湀鏃ヤ覆 + String birth = getIdCardBirthDayStr(idCard); + // 鑾峰彇骞存湀鏃� + int year = Integer.parseInt(birth.substring(0, 4)); + int month = Integer.parseInt(birth.substring(4, 6)); + int day = Integer.parseInt(birth.substring(6, 8)); + String sr = year + "-" + month + "-" + day; + + // 瑙f瀽涓� Date + Date date = DateUtil.parse(sr, "yyyy-MM-dd"); + // 杞崲涓� LocalDateTime + LocalDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + // 璁剧疆鍥哄畾鏃跺垎绉� + dateTime = dateTime.withHour(12).withMinute(34).withSecond(56); + + // 鏍煎紡鍖栦负瀛楃涓茶繑鍥� + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + return dateTime.format(formatter); + } + + + public static boolean isValidIdCard(String idCardNumber) { // 姝e垯琛ㄨ揪寮忥紝鍖归厤韬唤璇佸彿鐮佺殑鏍煎紡 String regex = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"; -- Gitblit v1.8.0