正则表达式
概述:一个字符串(regex)
普通的字符串也是一个正则表达式,但是只能表示他自己
格式:String1.matches(条件); 【 \条件】 在使用时在前面多加一个,因为预定义字符本身就是一个普通的反斜杠和一个普通的字符组成,是一个整体
public static void main(String[] args) {
/w:表示包含大小写字母有数字下划线
System.out.println("z".matches("\\w"));//true
System.out.println("0".matches("\\w"));//true
System.out.println("_".matches("\\w"));//true
System.out.println("$".matches("\\w"));//false
System.out.println("@".matches("\\w"));//false
\s 空白字符
System.out.println(" ".matches("\\s"));
System.out.println(" ".matches("\\s"));
System.out.println("\n".matches("\\s"));
System.out.println("\t".matches("\\s"));
System.out.println("\r".matches("\\s"));
....
}
4、预定义字符中的【.】表示任意字符,如果在代码中直接书写【.】,就是通配,如果想要表示普通的点,必须写成【\.】
**
数量词
字符类和定义类字符类,都只是单个位置的字符,想实现没有或者多个位置的字符,就需要借助数量词
(1)模糊数量词:X?、X*、X+
(2)精确数量词:{n}、{n, }、{n, m}
X? 一次或一次也没有
X* 零次或多次
X+ 一次或多次
X{n} 恰好 n 次
X{n,} 至少 n 次
X{n,m} 至少 n 次,但是不超过 m 次
Date类
表示一个特定的瞬间
构造方法:
Date()表示创建对象的那一刹那时间
Date(long date)(2)表示传入毫秒值的时间,是从1970年1月1日0时0分0秒起开始计算
成员方法:
(1)getTime() 获取Date对象表示的时间的毫秒值【将对象的时间转为毫秒值】
setTime(long time) 将调用者对象的毫秒值设置为指定值【将输入的毫秒值(longtime)加到初始值】
Date d = new Date();//表示创建时间的时间
System.out.println(d);//Wed Nov 04 22:54:39 CST 2020
System.out.println(d.getTime());//1604501679778
d.setTime(60000);
System.out.println(d);//Thu Jan 01 08:01:00 CST 1970
//将括号内的毫秒值加到初始值
Date d2 = new Date(600000);
System.out.println(d2);
DateFormat类
简单来说就是对Date的优化
4、重要成员方法:
(1)format(Date date) 将参数对象,格式化为一定的日期格式,结果是一个字符串 Date -> String
(2)parse(String date) 将参数字符串表示的时间解析为一个Date对象 String -> Date
四、SimpleDateFormat
1、SimpleDateFormat是DateFormat的子类,使用SimpleDateFormat类型,可以使用DateFormat类的所有方法
2、构造方法:
(1)SimpleDateFormat() 使用默认的格式解析时间对象,默认格式:20-11-4 下午3:00
(2)SimpleDateFormat(String pattern) 使用给定的格式解析时间对象
Date d = new Date();//原料【获取现在的时间d】
SimpleDateFormat sdf = new SimpleDateFormat();//模具【括号没写数据,使用默认方式】
String result = sdf.format(d);//将Date类型转为String类型
System.out.println(result);//04/11/20 下午 11:13
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//使用括号内的方式美化时间
System.out.println(sdf.format(d));
String和Date类型相互转化
String time = "2020/11/4 15:11:20";给定一个String类型时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = sdf.parse(time);//Wed Nov 04 15:11:20 CST 2020【String转Date类型】
System.out.println(date);
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String str = sdf1.format(date);//2020/11/04 15:11:20【将上面输出的Date再次转回】
System.out.println(str);
Calender类
表示一个精确的瞬间
Calendar.getInstance():可以获取到Calendar的实现对象,此对象获取到的时候,就包含了所有的日历字段
get方法
get(int field) 传入字段序号,可以返回具体的字段值
Calendar ca = Calendar.getInstance();
System.out.println(ca.get(Calendar.YEAR));//年
System.out.println(ca.get(Calendar.MONTH));//月
System.out.println(ca.get(Calendar.DATE));//日
System.out.println(ca.get(Calendar.HOUR_OF_DAY));
System.out.println(ca.get(Calendar.MINUTE));
System.out.println(ca.get(Calendar.SECOND));
set方法
可以针对具体日历字段对应的设置值
(1)set(int field, int value) 指定日历字段,设置为指定的值
(2)set(int year, int month, int date, int hourOfDay, int minute, int second) 设定Calendar对象的年月日时分秒字段的值,其余字段值保持不变
Calendar ca = Calendar.getInstance();【调用时间】
Calendar ca = Calendar.getInstance();
System.out.println(ca);
System.out.println(ca.get(Calendar.YEAR));//2020
System.out.println(ca.get(Calendar.MONTH));//10
ca.set(Calendar.YEAR, 1999);
ca.set(1999, 1, 1, 10, 55, 26);
System.out.println(ca);
System.out.println(ca.get(Calendar.YEAR));//1999
System.out.println(ca.get(Calendar.MONTH));//1
add方法
1、方法功能:在某个日历字段现有的时间基础上,添加一些时间,让时间进行偏移
2、注意事项:如果当前时间不够存储偏移的时间,会自动按照时间的规则向上进
ca.add(Calendar.
要添加的年月日等,值);
Calendar ca = Calendar.getInstance();
System.out.println(ca);
ca.add(Calendar.DATE, 27);
System.out.println(ca);