Java日期时间与正则表达式都是重要的Java核心知识点,能够帮助开发者实现各种时间日期格式的处理以及字符串匹配等功能。下面就对Java日期时间与正则表达式进行详细讲解。
一、Java日期时间
1.1 日期时间的创建
Java提供了多种创建日期时间的方法,常见的有以下几种:
1.1.1 使用new Date()创建
使用java.util.Date
类的默认构造方法new Date()创建日期时间对象:
Date date = new Date();
1.1.2 使用SimpleDateFormat创建
使用java.text.SimpleDateFormat
类可以通过指定日期时间格式生成日期时间对象。示例:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormat.parse("2020-01-01 00:00:00");
1.1.3 使用Calendar创建
java.util.Calendar
类提供了多种方法来创建日期对象,例如,可以使用Calendar.getInstance()
方法获取当前时间日期:
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
1.2 日期时间格式化
Java提供了多种格式化日期时间的方式,常用的有以下两种:
1.2.1 使用SimpleDateFormat格式化
使用SimpleDateFormat
类中format()
方法,通过指定日期时间格式,将日期时间对象格式化为字符串:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormat.parse("2020-01-01 00:00:00");
String strDate = dateFormat.format(date);
1.2.2 使用String.format()格式化
使用String.format()
方法也可以通过指定日期时间格式,将日期时间对象格式化为字符串:
Date date = new Date();
String strDate = String.format("%tF %tT", date, date);
1.3 日期时间计算
Java提供了一些函数来进行日期时间计算,常用的有以下几种:
1.3.1 使用Calendar类计算
Calendar
类提供了一些用于增减日期时间的方法,例如,可以通过Calendar.add(Calendar.DATE, 1)
来实现日期加1天:
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date tomorrow = cal.getTime();
1.3.2 使用Duration计算
Duration
是Java 8引入的新类,用于计算时间差,例如,可以使用Duration.between()
函数计算两个时刻之间的时间差:
LocalDateTime dt1 = LocalDateTime.of(2021, Month.JANUARY, 1, 0, 0, 0);
LocalDateTime dt2 = LocalDateTime.of(2021, Month.JANUARY, 10, 0, 0, 0);
Duration diff = Duration.between(dt1, dt2);
long diffDays = diff.toDays();
1.4 日期时间比较
比较两个日期时间对象的大小可以使用Date.compareTo()
函数或Calendar.compareTo()
函数。
Date date1 = new Date();
Date date2 = new Date();
if (date1.compareTo(date2) < 0) {
System.out.println("date1在date2之前");
} else if (date1.compareTo(date2) > 0) {
System.out.println("date1在date2之后");
} else {
System.out.println("两个日期相同");
}
二、正则表达式
2.1 正则表达式的语法
正则表达式是一种用来匹配字符串的规则,Java中的正则表达式语法和其他语言的语法都非常类似。下面是一些正则表达式的元字符:
.
: 匹配任意一个字符*
: 匹配0个或多个前面的表达式+
: 匹配1个或多个前面的表达式?
: 匹配0个或1个前面的表达式{n}
: 匹配n个前面的表达式{n,m}
: 匹配n到m个前面的表达式()
: 表达式分组,捕获该部分匹配的内容[]
: 匹配中括号里面的任意一个字符
2.2 正则表达式的匹配
Java提供了java.util.regex.Pattern
和java.util.regex.Matcher
两个类用于正则表达式的匹配。常用的正则表达式匹配方法如下:
2.2.1 Pattern.matches(String regex, CharSequence input)
Pattern.matches()
函数用于判断给定的字符串是否符合指定正则表达式,返回一个布尔值。
boolean isMatch = Pattern.matches("\\w+", "HelloWorld");
2.2.2 Matcher.find()
Matcher.find()
函数用于在字符串中查找匹配的子串,每次调用返回下一个符合正则表达式的子串,若没有则返回false。
Matcher m = Pattern.compile("\\d+").matcher("123456");
while (m.find()) {
System.out.println(m.group(0));
}
2.3 正则表达式的替换
Java提供了String.replaceAll()
函数用于将字符串中符合正则表达式的子串替换为指定的内容。
String str = "Hello, 正则表达式!";
str = str.replaceAll("\\pP|\\pS", "");
System.out.println(str); // 输出: Hello正则表达式
2.4 示例
2.4.1 验证手机号格式
public static boolean isMobilePhone(String phoneNumber) {
String regex = "^1[3-9]\\d{9}$";
return Pattern.matches(regex, phoneNumber);
}
2.4.2 断言字符串是否全是字母
public static boolean isAlpha(String str) {
return str.matches("[a-zA-Z]+");
}
以上就是Java日期时间和正则表达式超详细整理的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java日期时间与正则表达式超详细整理(适合新手入门) - Python技术站