Java日期时间与正则表达式超详细整理(适合新手入门)

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.Patternjava.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技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JSP中通过Servlet 将服务器硬盘图片并展示到浏览器

    在JSP中通过Servlet展示服务器硬盘上的图片,可以按照以下步骤来实现: 在web.xml文件中配置servlet 在web.xml文件中配置servlet,将servlet的访问路径配置为“/image”,并将servlet的类名配置为“com.example.ImageServlet”。 示例代码: <servlet> <servl…

    Java 2023年6月15日
    00
  • 什么是Java元空间(Metaspace)?

    什么是Java元空间(Metaspace)? Java元空间(Metaspace)是在Java 8中新引入的一种内存区域,用于存储类的元数据信息。在之前的Java版本中,元数据信息被存储在永久代(Permanent Generation)中,但是永久代的内存空间不可扩展,当大量的类或字符串被加载时,会导致永久代的OOM(Out Of Memory),因此在J…

    Java 2023年5月11日
    00
  • Spring Web MVC框架学习之配置Spring Web MVC

    下面是关于“Spring Web MVC框架学习之配置Spring Web MVC”的完整攻略,包含两个示例说明。 Spring Web MVC框架学习之配置Spring Web MVC Spring Web MVC是一个基于MVC模式的Web框架,可以帮助我们快速开发Web应用程序。本文将介绍如何配置Spring Web MVC框架。 添加依赖 首先,我们…

    Java 2023年5月17日
    00
  • IDEA创建Java Web项目不能及时刷新HTML或JSP页面问题

    当使用IntelliJ IDEA创建Java Web项目并且编写HTML或JSP页面时,可能会遇到页面不能及时刷新的问题,这是由于IDEA默认采用了缓存机制导致的。为了解决这个问题,可以执行以下步骤: 1. 关闭缓存 通过在IDEA的Editor部分中找到Editor > General > Editor Tabs选项,并勾选“Mark modi…

    Java 2023年6月15日
    00
  • 浅析java实现数据加密问题

    讲解”浅析java实现数据加密问题”的完整攻略,将分为以下几个部分: 加密和解密的基础概念和算法 java如何实现对数据进行加密 示例1:对字符串进行加密并解密 示例2:对文件进行加密并解密 加密和解密的基础概念和算法 数据加密是指将原来明文的内容通过某种算法(密钥)处理以后形成一定的密文,使得未经授权的人士无法获得原数据的信息内容。解密是指按照预定的算法,…

    Java 2023年5月23日
    00
  • 在Android源码中编译出指定jar包的操作

    在Android源码中编译出指定jar包的操作可以通过以下步骤完成: 1. 下载Android源码 下载Android源码到本地开发环境。 命令示例: $ repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r47 $ repo sync 2. 修…

    Java 2023年5月26日
    00
  • SpringBoot项目整合mybatis的方法步骤与实例

    下面我将为您提供一份详细的SpringBoot整合MyBatis的攻略,包含以下步骤和示例。 步骤 步骤一:配置数据源 DataSource 在 application.properties 或 application.yml 中配置数据源(例如 MySQL)的相关信息,如下所示: spring: datasource: driver-class-name:…

    Java 2023年5月19日
    00
  • 关于idea中ssm框架的编码问题分析

    下面我将为你详细讲解关于 IDEA 中 SSM 框架的编码问题分析的完整攻略。 1. 问题背景 在使用 IDEA 开发 SSM 框架项目时,我们有时会遇到编码问题。例如,在提交表单数据时出现乱码、在从数据库查询数据时出现中文乱码等问题。 2. 解决方法 2.1 设置 IDEA 编辑器字符集 我们需要在 IDEA 中设置字符集为 UTF-8,确保编辑器中的代码…

    Java 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部