当前位置:   article > 正文

Java中用正则表达式判断日期格式_java正则判断时间格式

java正则判断时间格式
  1. import java.time.LocalDate;
  2. import java.time.format.DateTimeFormatter;
  3. import java.util.Scanner;
  4. public class Text {
  5. public static void main(String[] args){
  6. while (true) {
  7. //System.out.println(localDate());加入了判断闰月
  8. System.out.println(localDate1());//没有加判断 是否是闰月,所以存在不是闰年,但2月有29号
  9. }
  10. }
  11. //判断输入的日期格式是否正确,加入了判断是否是闰月
  12. //因为加入了判断是否是闰月,所以日期的输入必须是正确的
  13. //月份0开头分为【1,3,5,7,8】31天(0[1-9] , [12][0-9] , 3[01])与【4,6,9】30天(0[1-9] , [12][0-9] , 30);
  14. //月份1开头分为【0,2】31天(0[1-9] , [12][0-9] , 3[01])与【1】30天(0[1-9] , [12][0-9] , 30);
  15. //例外2月份同上,闰月29天,正常28天;
  16. public static boolean localDate(){
  17. Scanner sc = new Scanner(System.in);
  18. System.out.println("请输入时间:(yyyy-MM-dd)");
  19. String localDate = sc.next();//获取输入日期
  20. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");//格式化时间
  21. LocalDate localDate1 = LocalDate.parse(localDate , dateTimeFormatter);//解析时间
  22. int year = localDate1.getYear();//获取年份
  23. //判断是否为闰年
  24. if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0) {//输入的年份是闰年
  25. if (localDate.matches("\\d{4}-(((0[13578]-((0[1-9])|([12][0-9])|(3[01])))|(0[469]-((0[1-9])|([12][0-9])|(30))))" +
  26. "|((1[02]-((0[1-9])|([12][0-9])|(3[01])))|(11-((0[1-9])|([12][0-9])|(30))))" +
  27. "|(02-((0[1-9])|(1[0-9])|(2[0-9]))))")){//闰年2月有29天
  28. return true;
  29. }
  30. }else{//输入的不是闰年,2月就28天
  31. if(localDate.matches("\\d{4}-(((0[13578]-((0[1-9])|([12][0-9])|(3[01])))|(0[469]-((0[1-9])|([12][0-9])|(30))))" +
  32. "|((1[02]-((0[1-9])|([12][0-9])|(3[01])))|(11-((0[1-9])|([12][0-9])|(30))))" +
  33. "|(02-((0[1-9])|(1[0-9])|(2[0-8]))))")){
  34. return true;
  35. }
  36. }
  37. return false;
  38. }
  39. //直接判断,没有加是否是闰月
  40. public static boolean localDate1(){
  41. Scanner sc = new Scanner(System.in);
  42. System.out.println("请输入时间:(yyyy-MM-dd)");
  43. String localDate = sc.next();//获取输入日期
  44. if (localDate.matches("\\d{4}-(((0[13578]-((0[1-9])|([12][0-9])|(3[01])))|(0[469]-((0[1-9])|([12][0-9])|(30))))" +
  45. "|((1[02]-((0[1-9])|([12][0-9])|(3[01])))|(11-((0[1-9])|([12][0-9])|(30))))" +
  46. "|(02-((0[1-9])|(1[0-9])|(2[0-9]))))")){
  47. return true;
  48. }
  49. return false;
  50. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/52152
推荐阅读
相关标签
  

闽ICP备14008679号