以下代码把口语时间转化成标准时间:
public static String kouyuShijian(String shijian) { //10分钟后 //下午两点 //明天早上 //明天早上10点 //这个周五早上11点 //每天早上9点 //每个周五早上1点 //每个月15号早上1点 //每天 int zhi=0; String canshu=""; String fanhui=""; if (shijian.indexOf("以后")>-1) { shijian=shijian.replace("以后", "后"); } else if (shijian.indexOf("以前")>-1) { shijian=shijian.replace("以前", "前"); } if (shijian.indexOf("的")>-1) { shijian=shijian.replace("的", ""); } if (shijian.indexOf("个")>-1) { shijian=shijian.replace("个", ""); } if (shijian.indexOf("整")>-1) { shijian=shijian.replace("整", ""); } if (shijian.indexOf("正")>-1) { shijian=shijian.replace("正", ""); } if (shijian.indexOf("凌晨")>-1) { shijian=shijian.replace("凌晨", "早上"); } if (shijian.indexOf("傍晚")>-1) { shijian=shijian.replace("傍晚", "晚上"); } if (shijian.indexOf("时")>-1 || shijian.indexOf("小时")<0) { shijian=shijian.replace("时", "点"); } if (shijian.indexOf("后") > 0) { if (shijian.indexOf("分钟后") > 0) { String shuzi = shijian.substring(0, shijian.indexOf("分钟后")); shuzi = Shuzizhuanxie.chineseNumToArabicNum(shuzi); Pattern pattern = Pattern.compile("[0-9]*"); if (pattern.matcher(shuzi).matches()) { zhi = Integer.parseInt(shuzi); } canshu = "minute"; } else if (shijian.indexOf("小时后") > 0) { String shuzi = shijian.substring(0, shijian.indexOf("小时后")); shuzi = Shuzizhuanxie.chineseNumToArabicNum(shuzi); Pattern pattern = Pattern.compile("[0-9]*"); if (pattern.matcher(shuzi).matches()) { zhi = Integer.parseInt(shuzi); } canshu = "hour"; } else if (shijian.indexOf("天后") > 0) { String shuzi = shijian.substring(0, shijian.indexOf("天后")); shuzi = Shuzizhuanxie.chineseNumToArabicNum(shuzi); Pattern pattern = Pattern.compile("[0-9]*"); if (pattern.matcher(shuzi).matches()) { zhi = Integer.parseInt(shuzi); } canshu = "day"; } else if (shijian.indexOf("秒后") > 0) { String shuzi = shijian.substring(0, shijian.indexOf("秒后")); shuzi = Shuzizhuanxie.chineseNumToArabicNum(shuzi); Pattern pattern = Pattern.compile("[0-9]*"); if (pattern.matcher(shuzi).matches()) { zhi = Integer.parseInt(shuzi); } canshu = "secont"; } else if (shijian.indexOf("年后") > 0) { String shuzi = shijian.substring(0, shijian.indexOf("年后")); shuzi = Shuzizhuanxie.chineseNumToArabicNum(shuzi); Pattern pattern = Pattern.compile("[0-9]*"); if (pattern.matcher(shuzi).matches()) { zhi = Integer.parseInt(shuzi); } canshu = "year"; } else if (shijian.indexOf("月后") > 0) { String shuzi = shijian.substring(0, shijian.indexOf("月后")); shuzi = Shuzizhuanxie.chineseNumToArabicNum(shuzi); Pattern pattern = Pattern.compile("[0-9]*"); if (pattern.matcher(shuzi).matches()) { zhi = Integer.parseInt(shuzi); } canshu = "month"; } else if (shijian.indexOf("周后") > 0) { String shuzi = shijian.substring(0, shijian.indexOf("周后")); shuzi = Shuzizhuanxie.chineseNumToArabicNum(shuzi); Pattern pattern = Pattern.compile("[0-9]*"); if (pattern.matcher(shuzi).matches()) { zhi = Integer.parseInt(shuzi); } canshu = "week"; } fanhui=gettime(canshu,zhi, true); } else if (shijian.indexOf("点") >0) { int xiaoshi=0; int fenzhong=0; int miao=0; String zaowan=""; int weizhi1=0; int weizhi2=0; int weizhi3=shijian.indexOf("分"); int weizhi4=shijian.indexOf("秒"); if (shijian.indexOf("早上") > -1 && shijian.indexOf("点") >2 ) { zaowan="早上"; weizhi1=shijian.indexOf("早上")+2; weizhi2=shijian.indexOf("点"); } else if (shijian.indexOf("中午") > -1 && shijian.indexOf("点") >2 ) { zaowan="中午"; weizhi1=shijian.indexOf("中午")+2; weizhi2=shijian.indexOf("点"); } else if (shijian.indexOf("下午") > -1 && shijian.indexOf("点") >2 ) { zaowan="下午"; weizhi1=shijian.indexOf("下午")+2; weizhi2=shijian.indexOf("点"); } else if (shijian.indexOf("晚上") > -1 && shijian.indexOf("点") >2 ) { zaowan="晚上"; weizhi1=shijian.indexOf("晚上")+2; weizhi2=shijian.indexOf("点"); } else if (shijian.indexOf("天") > -1 && shijian.indexOf("点") >0 ) { weizhi1=shijian.indexOf("天")+1; weizhi2=shijian.indexOf("点"); } else if (shijian.indexOf("点") >0 ) { weizhi1=0; weizhi2=shijian.indexOf("点"); } String shuzi = shijian.substring(weizhi1, weizhi2); System.out.println(shuzi); shuzi = Shuzizhuanxie.chineseNumToArabicNum(shuzi); Pattern pattern = Pattern.compile("[0-9]*"); if (pattern.matcher(shuzi).matches()) { xiaoshi = Integer.parseInt(shuzi); } if (zhi==24){ xiaoshi=0; } else if (zhi>24){ xiaoshi=0; } else if(zhi<12 &&((shijian.indexOf("中午")>-1 || shijian.indexOf("下午")>-1 || shijian.indexOf("晚上")>-1))) { xiaoshi=xiaoshi+12; } String fenmiao = shijian.substring(weizhi2+1); if (fenmiao.equals("半")){ fenzhong=30; } else if (weizhi3 >shijian.indexOf("点")) { String fen=shijian.substring(weizhi2+1, weizhi3); fen = Shuzizhuanxie.chineseNumToArabicNum(fen); if (pattern.matcher(fen).matches()) { fenzhong = Integer.parseInt(fen); } } else if (!TextUtils.isEmpty(shijian.substring(weizhi2+1))) { String fen=shijian.substring(weizhi2+1); fen = Shuzizhuanxie.chineseNumToArabicNum(fen); if (pattern.matcher(fen).matches()) { fenzhong = Integer.parseInt(fen); } } if (weizhi3>0 && weizhi4 >weizhi3) { String mi=shijian.substring(weizhi3+1, weizhi4); mi = Shuzizhuanxie.chineseNumToArabicNum(mi); if (pattern.matcher(mi).matches()) { miao = Integer.parseInt(mi); } } else if (weizhi3>0 && !TextUtils.isEmpty(shijian.substring(weizhi3+1))) { String mi=shijian.substring(weizhi3+1); mi = Shuzizhuanxie.chineseNumToArabicNum(mi); if (pattern.matcher(mi).matches()) { miao = Integer.parseInt(mi); } } if(miao>59) { miao=0; fenzhong=fenzhong+1; } if(fenzhong>59) { fenzhong=0; xiaoshi=xiaoshi+1; } if (xiaoshi>23) { xiaoshi=0; } fanhui=xiaoshi+":"+fenzhong+":"+miao; String day=""; if (shijian.indexOf("今天")==0){ day=getRiqi("今天"); } else if (shijian.indexOf("明天")==0){ day=getRiqi("明天"); } else if (shijian.indexOf("后天")==0){ day=getRiqi("后天"); } else if (shijian.indexOf("大后天")==0){ day=getRiqi("大后天"); } else if (shijian.indexOf("大大后天")==0){ day=getRiqi("大大后天"); } else{ day=getRiqi("今天"); } fanhui=day +" "+fanhui; } return fanhui; }
//输入结果:2024年9月11日 11:45:39