Java 从银行获取日期
我想从银行在不同领域发送的消息中获取所有详细信息,我试图从这些消息中获取日期 但它无法获得所有类型的日期 除其他领域的问题外,我从所有这些问题中获得了金额Java 从银行获取日期,java,android,Java,Android,我想从银行在不同领域发送的消息中获取所有详细信息,我试图从这些消息中获取日期 但它无法获得所有类型的日期 除其他领域的问题外,我从所有这些问题中获得了金额 smsDto.setBody("Dear Customer, Your Ac XXXXXXXX5666 is credited with INR8,922.00 on 16 Feb. Info. INF*000080483346*SALARY. Your Net Available Bal is INR 8,922.00.");
smsDto.setBody("Dear Customer, Your Ac XXXXXXXX5666 is credited with INR8,922.00 on 16 Feb. Info. INF*000080483346*SALARY. Your Net Available Bal is INR 8,922.00.");
smsDto.setBody("A/c NN5715 debited for Rs 2000; ATM WDL. A/c Bal(sub to chq realisatn) Rs13286.23 on 24APR 21:19hr. Call 1800226999 to block your card if not used by you.");
smsDto.setBody("Dear Customer, your Account Number XXXXXX6377 has been credited by Rs 215.000 being DBT/DBTL funds transfer on 19/05/2015 - CENTRAL BANK OF INDIA");
smsDto = new SmsDto();
smsDto.setBody("Dear Customer, your Account XX0770 has been credited with INR 20,000.00 on 21-Dec-18. Info: BIL*INFT*001602773462*STEALT. The Available Balance is INR 23,547.77.");
}
AND CODE IS
String getDate(String msgBody){
String date="";
Pattern regEx = Pattern.compile("(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\\d\\d");// Pattern.compile("[0-9]*[Xx\\*]*[0-9]*[Xx\\*]+[0-9]{3,}");
Matcher m = regEx.matcher(msgBody);
if (m.find()) {
try {
Log.e("date= ", "" + m.group(0));
date = (m.group(0));
} catch (Exception e) {
e.printStackTrace();
}
} else {
Log.e("No_matchedValue ", "No_matchedValue ");
}
return date;
}
我看到您正在从两个字段中提取日期—2015年5月19日和2018年12月21日 对于以上两种模式,您可以尝试下面的正则表达式
/* for MM/dd/yyyy */
regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/
/* for dd-mon-yyyy */
regex = [0-9]{1,2}-[a-zA-Z]{3}-[0-9]{4}