目录一. SimpleDateFormat 日期格式化类1.1 Date 类型转 String1.2 String 类型转 Date二. Calendar 日历类三. 正则表达式3.1 正则表达式的组成部分3.2 手机号正则表达式3.3 常用密码校验正则表达式一. SimpleDateFormat 日期格式化类SimpleDateFormat 是 Java 中用于格式化和解析日期的类。它允许你将日期对象转换为特定格式的字符串或者将特定格式的字符串转换为日期对象。1.1 Date 类型转 Stringpublic final format(Date date)方法传入一个 Date 类型的变量返回一个字符串// 指定要转化成哪种格式的字符串 // 第一种(最常用的一种)年-月-日 时-分-秒格式。 为24小时制例如下午一点,显示为 13-00-00 SimpleDateFormat simpleDateFormat1 new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); // 第二种 年-月-日 时-分-秒格式。 为12小时制例如下午一点就会显示 01-00-00 SimpleDateFormat simpleDateFormat2 new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); // 第三种 年-月-日 格式。 SimpleDateFormat simpleDateFormat3 new SimpleDateFormat(yyyy-MM-dd); // 获取当前时间。 实际开发则从数据库查询获得或由前端传入获取 Date date new Date(); // 将当前时间格式化成指定格式的字符串 String formatDate1 simpleDateFormat1.format(date); System.out.println(yyyy-MM-dd HH:mm:ss 格式转化为字符串 formatDate1); String formatDate2 simpleDateFormat2.format(date); System.out.println(yyyy-MM-dd hh:mm:ss 格式转化为字符串 formatDate2); String formatDate3 simpleDateFormat3.format(date); System.out.println(yyyy-MM-dd 格式转化为字符串 formatDate3);运行代码如下所示1.2 String 类型转 Datepublic Date parse(String source) throws ParseException方法传入一个字符串返回一个 Date 类型的对象// 指定要转化成哪种格式的字符串 // 第一种(最常用的一种)年-月-日 时-分-秒格式。 为24小时制例如下午一点,显示为 13-00-00 SimpleDateFormat simpleDateFormat1 new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); // 第二种 年-月-日 时-分-秒格式。 为12小时制例如下午一点就会显示 01-00-00 SimpleDateFormat simpleDateFormat2 new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); // 第三种 年-月-日 格式。 SimpleDateFormat simpleDateFormat3 new SimpleDateFormat(yyyy-MM-dd); String dateString1 2012-12-12 12:12:12; String dateString2 2022-12-12 12:12:12; String dateString3 2032-12-12; try { Date date1 simpleDateFormat1.parse(dateString1); Date date2 simpleDateFormat2.parse(dateString2); Date date3 simpleDateFormat3.parse(dateString3); System.out.println(date1); System.out.println(date2); System.out.println(date3); } catch (ParseException e) { throw new RuntimeException(e);运行上述代码如下所示二. Calendar 日历类Calendar 类是 Java 中用于操作日期和时间的抽象类。它提供了一些方法来获取和设置日期和时间以及进行日期和时间的计算。(1) getInstance()获取一个表示当前日期和时间的 Calendar 实例(2) get(int field)获取指定字段的值。字段可以是 Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_MONTH 等但这里要注意月份是从0~11因此当我们要转化成具体的某一个月时需要1(3) getTime()将Calendar对象转换为Date对象(4) setTime(Date date)将Date对象设置为Calendar对象的日期和时间Calendar calendar Calendar.getInstance(); System.out.println(calender 对象 calendar.getTime()); // 获取年份 int year calendar.get(Calendar.YEAR); System.out.println(获取 calender 对象的年份 year); // 获取月份 int month calendar.get(Calendar.MONTH); System.out.println(获取 calender 对象的月份未1 month); // 获取日期 int dayOfMonth calendar.get(Calendar.DAY_OF_MONTH); System.out.println(获取 calender 对象的日期 dayOfMonth); // 打印当前日期和时间月份进行1 System.out.println(year - (month 1) - dayOfMonth); // 转化为 date 对象 Date date calendar.getTime(); System.out.println(转化为 Date 类型对象 date);运行上述代码如下所示三. 正则表达式正则表达式大家都不陌生虽然对于初学者来说写起来不太简单但用起来是真的香通常都是将正则条件写成一个字符串然后在去调用 String 字符串类中已经写好的 matches 正则方法方法会返回一个布尔类型的值。3.1 正则表达式的组成部分1字符类用于匹配特定类型的字符。例如 [abc] 匹配字符 abc[a-z] 则表示匹配26个小写字母[A-Z] 则表示匹配26个大写字母[0-9] 表示匹配0~9的数字2量词用于指定匹配的字符数量。例如 a* 匹配零个或多个a 表示匹配一个或多个a? 表示匹配零个或一个3锚点用于指定匹配的位置。例如 ^表示匹配的开始“”4分组分组用于将多个字符或模式组合在一起。例如abc匹配 abcabc|def匹配 abc 或 def。5转义字符转义字符用于匹配特殊字符。例如 \d 匹配任何数字\w 匹配任何字母数字或下划线。6预查预查用于指定匹配的模式必须满足的条件但不包括匹配结果中。例如 ?abc表示匹配的位置后面必须是 abc。当然了上述六个是正则表达式的基本组成部分还有很多高级的组成部分包括反向引用非获取组注释等。3.2 手机号正则表达式想要校验一个手机号是否合法首先要知道手机号的基本构成。这里扩展一个冷知识。1手机号都是以 1 开头这个大家都知道2手机号码第二位不可能是 012第三可以是任意数字后面8位也是随机数字3中国三大运行商移动联通电信分别运营不同的特有号码片段正是通过第二位和第三位数字来区分属于哪个运营商的。代码如下// ^表示字符串的开始。 // 1表示手机号的第一位必须是1。 // [3456789]表示手机号的第二位必须是3、4、5、6、7、8、9中的一个。 // \\d{9}表示手机号的后面9位必须是数字。第一个 \ 表示转义符 // $表示字符串的结束。 String regex ^1[3456789]\\d{9}$; // 现在手机号直接定义一个实际开发会由前端传给我们 String phoneNumber 13812345678; if (phoneNumber.matches(regex)) { System.out.println(手机号格式正确); } else { System.out.println(手机号格式错误); }3.3 常用密码校验正则表达式密码就没啥可说的了安全性高一些的网站或者APP可能会强制要求至少包含一个大小写、数字、特殊字符且不能含有空格长度通常为8~16位。// 至少包含一个大写字母(?.*[A-Z]) // 至少包含一个小写字母(?.*[a-z]) // 至少包含一个数字(?.*\\d) // 至少包含一个特殊字符(?.*[!#$%^*()_\\-\\[\\]{};:\\|,.\\/?]) // 不允许有空格^[^\\s]$ // 至少8个字符且不多于16个字符^.{8,}$ String regex ^(?.*[A-Z])(?.*[a-z])(?.*\\d)(?.*[!#$%^*()_\\-\\[\\]{};:\\\|,.\\/?]).{8,16}$; String password Abc123!#; if (password.matches(regex)) { System.out.println(密码符合要求); } else { System.out.println(密码不符合要求); }
Java常用 Date 时间格式化、Calender日历、正则表达式的用法
目录一. SimpleDateFormat 日期格式化类1.1 Date 类型转 String1.2 String 类型转 Date二. Calendar 日历类三. 正则表达式3.1 正则表达式的组成部分3.2 手机号正则表达式3.3 常用密码校验正则表达式一. SimpleDateFormat 日期格式化类SimpleDateFormat 是 Java 中用于格式化和解析日期的类。它允许你将日期对象转换为特定格式的字符串或者将特定格式的字符串转换为日期对象。1.1 Date 类型转 Stringpublic final format(Date date)方法传入一个 Date 类型的变量返回一个字符串// 指定要转化成哪种格式的字符串 // 第一种(最常用的一种)年-月-日 时-分-秒格式。 为24小时制例如下午一点,显示为 13-00-00 SimpleDateFormat simpleDateFormat1 new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); // 第二种 年-月-日 时-分-秒格式。 为12小时制例如下午一点就会显示 01-00-00 SimpleDateFormat simpleDateFormat2 new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); // 第三种 年-月-日 格式。 SimpleDateFormat simpleDateFormat3 new SimpleDateFormat(yyyy-MM-dd); // 获取当前时间。 实际开发则从数据库查询获得或由前端传入获取 Date date new Date(); // 将当前时间格式化成指定格式的字符串 String formatDate1 simpleDateFormat1.format(date); System.out.println(yyyy-MM-dd HH:mm:ss 格式转化为字符串 formatDate1); String formatDate2 simpleDateFormat2.format(date); System.out.println(yyyy-MM-dd hh:mm:ss 格式转化为字符串 formatDate2); String formatDate3 simpleDateFormat3.format(date); System.out.println(yyyy-MM-dd 格式转化为字符串 formatDate3);运行代码如下所示1.2 String 类型转 Datepublic Date parse(String source) throws ParseException方法传入一个字符串返回一个 Date 类型的对象// 指定要转化成哪种格式的字符串 // 第一种(最常用的一种)年-月-日 时-分-秒格式。 为24小时制例如下午一点,显示为 13-00-00 SimpleDateFormat simpleDateFormat1 new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); // 第二种 年-月-日 时-分-秒格式。 为12小时制例如下午一点就会显示 01-00-00 SimpleDateFormat simpleDateFormat2 new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); // 第三种 年-月-日 格式。 SimpleDateFormat simpleDateFormat3 new SimpleDateFormat(yyyy-MM-dd); String dateString1 2012-12-12 12:12:12; String dateString2 2022-12-12 12:12:12; String dateString3 2032-12-12; try { Date date1 simpleDateFormat1.parse(dateString1); Date date2 simpleDateFormat2.parse(dateString2); Date date3 simpleDateFormat3.parse(dateString3); System.out.println(date1); System.out.println(date2); System.out.println(date3); } catch (ParseException e) { throw new RuntimeException(e);运行上述代码如下所示二. Calendar 日历类Calendar 类是 Java 中用于操作日期和时间的抽象类。它提供了一些方法来获取和设置日期和时间以及进行日期和时间的计算。(1) getInstance()获取一个表示当前日期和时间的 Calendar 实例(2) get(int field)获取指定字段的值。字段可以是 Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_MONTH 等但这里要注意月份是从0~11因此当我们要转化成具体的某一个月时需要1(3) getTime()将Calendar对象转换为Date对象(4) setTime(Date date)将Date对象设置为Calendar对象的日期和时间Calendar calendar Calendar.getInstance(); System.out.println(calender 对象 calendar.getTime()); // 获取年份 int year calendar.get(Calendar.YEAR); System.out.println(获取 calender 对象的年份 year); // 获取月份 int month calendar.get(Calendar.MONTH); System.out.println(获取 calender 对象的月份未1 month); // 获取日期 int dayOfMonth calendar.get(Calendar.DAY_OF_MONTH); System.out.println(获取 calender 对象的日期 dayOfMonth); // 打印当前日期和时间月份进行1 System.out.println(year - (month 1) - dayOfMonth); // 转化为 date 对象 Date date calendar.getTime(); System.out.println(转化为 Date 类型对象 date);运行上述代码如下所示三. 正则表达式正则表达式大家都不陌生虽然对于初学者来说写起来不太简单但用起来是真的香通常都是将正则条件写成一个字符串然后在去调用 String 字符串类中已经写好的 matches 正则方法方法会返回一个布尔类型的值。3.1 正则表达式的组成部分1字符类用于匹配特定类型的字符。例如 [abc] 匹配字符 abc[a-z] 则表示匹配26个小写字母[A-Z] 则表示匹配26个大写字母[0-9] 表示匹配0~9的数字2量词用于指定匹配的字符数量。例如 a* 匹配零个或多个a 表示匹配一个或多个a? 表示匹配零个或一个3锚点用于指定匹配的位置。例如 ^表示匹配的开始“”4分组分组用于将多个字符或模式组合在一起。例如abc匹配 abcabc|def匹配 abc 或 def。5转义字符转义字符用于匹配特殊字符。例如 \d 匹配任何数字\w 匹配任何字母数字或下划线。6预查预查用于指定匹配的模式必须满足的条件但不包括匹配结果中。例如 ?abc表示匹配的位置后面必须是 abc。当然了上述六个是正则表达式的基本组成部分还有很多高级的组成部分包括反向引用非获取组注释等。3.2 手机号正则表达式想要校验一个手机号是否合法首先要知道手机号的基本构成。这里扩展一个冷知识。1手机号都是以 1 开头这个大家都知道2手机号码第二位不可能是 012第三可以是任意数字后面8位也是随机数字3中国三大运行商移动联通电信分别运营不同的特有号码片段正是通过第二位和第三位数字来区分属于哪个运营商的。代码如下// ^表示字符串的开始。 // 1表示手机号的第一位必须是1。 // [3456789]表示手机号的第二位必须是3、4、5、6、7、8、9中的一个。 // \\d{9}表示手机号的后面9位必须是数字。第一个 \ 表示转义符 // $表示字符串的结束。 String regex ^1[3456789]\\d{9}$; // 现在手机号直接定义一个实际开发会由前端传给我们 String phoneNumber 13812345678; if (phoneNumber.matches(regex)) { System.out.println(手机号格式正确); } else { System.out.println(手机号格式错误); }3.3 常用密码校验正则表达式密码就没啥可说的了安全性高一些的网站或者APP可能会强制要求至少包含一个大小写、数字、特殊字符且不能含有空格长度通常为8~16位。// 至少包含一个大写字母(?.*[A-Z]) // 至少包含一个小写字母(?.*[a-z]) // 至少包含一个数字(?.*\\d) // 至少包含一个特殊字符(?.*[!#$%^*()_\\-\\[\\]{};:\\|,.\\/?]) // 不允许有空格^[^\\s]$ // 至少8个字符且不多于16个字符^.{8,}$ String regex ^(?.*[A-Z])(?.*[a-z])(?.*\\d)(?.*[!#$%^*()_\\-\\[\\]{};:\\\|,.\\/?]).{8,16}$; String password Abc123!#; if (password.matches(regex)) { System.out.println(密码符合要求); } else { System.out.println(密码不符合要求); }