常用的API Date、Math、DateFormat、Calendar、正则表达式


Data类

public class DateDeom {public static void main(String[] args) {//创建日期类的对象Date date=new Date();//  返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。long time=date.getTime();System.out.println(time);System.out.println(date);}
}

DateFormat抽象类

用来解析格和格式化日期时间的

解析 字符串类型的时间–>Date类型 1970 年 1 月 1 日–> 00:00:00 GMT (String –>Date)

格式化 Date类型的时间–>转换成字符串类型的时间 00:00:00 GMT –> 1970 年 1 月 1 日(Date–>String)

由于是抽象类,DateFormat的构造方法是用来初始换数据的。

成员方法

String format(Date date) 将一个 Date 格式化为日期/时间字符串。

Date parse(String source) 从给定字符串的开始解析文本,以生成一个日期。

SimpleDateFormat类 继承了DateFormat抽象类

用到了操作系统的时间格式和语言环境

常用的构造方法

SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat对象。

利用父类的成员方法

String format(Date date) 将一个 Date 格式化为日期/时间字符串。

Date parse(String source) 从给定字符串的开始解析文本,以生成一个日期。

可以将SimpleDateFormat 和缓冲类来看,将时间或者字符串格式传进去 进行转化

public class SimpleDateFormatDemo {public static void main(String[] args) {//创建对象//String pattern 时间的格式SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//格式化时间 Date->StringString dateStr=sdf.format(new Date());System.out.println(dateStr);//解析日期时间 String->DateString dateString="2017-10-18";try {Date date=sdf.parse(dateString);System.out.println(date);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

解析和格式化日期的工具类

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class DateUtils {/*** 格式化日期* @param date 日期* @param pattern 字符串格式* @return 指定日期的格式*/public static String dateToString(Date date,String pattern){//将date对象转换成yyyy年MM月dd日HH:mm:ss的字符串时间SimpleDateFormat sdf=new SimpleDateFormat(pattern);String dateStr=sdf.format(date);return dateStr;}/*** 解析字符串转化成对应的日期* @param dateStr 当前的日期时间* @param pattern 格式* @return 日期*/public static Date strToDate(String dateStr,String pattern){//将date对象转换成yyyy年MM月dd日HH:mm:ss的字符串时间SimpleDateFormat sdf=new SimpleDateFormat(pattern);Date date=null;try {date=sdf.parse(pattern);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}return date;}}

Calendar日历抽象类

成员方法

abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。

int get(int field) 返回给定日历字段的值。

Date getTime() 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。

void set(int field, int value)将给定的日历字段(年、月、日)设置为给定值

void set(int year, int month, int date, int hourOfDay, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。

void setTime(Date date)使用给定的 Date 设置此 Calendar 的时间。

import java.util.Calendar;
import java.util.Date;public class CalenderDemo {public static void main(String[] args) {Calendar c=Calendar.getInstance();System.out.println(c);//根据字段的名称和偏移量修改时间c.add(Calendar.YEAR, 2);//现在的年的基础上 加2连c.add(Calendar.MONTH, 1);//现在的月的基础上 加2连c.add(Calendar.DAY_OF_MONTH ,5);//现在的日的基础上 加5连System.out.println(c);//返还指定的日历字段的信息System.out.println(c.get(Calendar.YEAR)+"年"+Calendar.MONTH+"月");//返回一个本地日期对象 DateDate date=c.getTime();System.out.println(date);//根据指定的日期字段修改指定的值c.set(Calendar.YEAR, 2015);c.set(Calendar.MONTH,1);c.set(Calendar.DAY_OF_MONTH, 1);System.out.println(c.get(Calendar.YEAR)+"年"+Calendar.MONTH+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");//设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。 c.set(2002, 2, 23, 15, 30, 34);System.out.println(c.get(Calendar.YEAR)+"年"+Calendar.MONTH+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");//将时间设置日历上的时间c.setTime(new Date());System.out.println(c.get(Calendar.YEAR)+"年"+Calendar.MONTH+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");}
}

System类 不能被实例化 在lang包

用来表示系统的类,用来操作系统的信息。

static void exit(int status) 终止当前正在运行的 Java 虚拟机。

static String getProperty(String key)获取指定键指示的系统属性。

public class SystemDemo {public static void main(String[] args) {/*int i=0;while (true){i++;if(i==50){System.exit(0);//退出java 虚拟机}}*/String version=System.getProperty("java.version");String os=System.getProperty("os.name");System.out.println(version);System.out.println(os);}
}

Math类 在java.lang 包下

数学类 用来进行数学的基本运算

static double abs(double a) 返回 double 值的绝对值

static double ceil(double a) 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。

static double random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

其他可查询API文档

基本的包装类型

将基本的数据类型转化成对象 利用面向对象的方式去处理数据。

列如

int –>Integer

char –>Charctor

包装类型的作用

  • 可以把基本类型转成对象
  • 可以把对象转成基本类型
  • 基本类型的数据转换成字符串

    public class IntegerDemo {public static void main(String[] args) {//基本类型 转化成 对象Integer i=new Integer(50);System.out.println(i);//把对象转换成基本类型int num=i.intValue();System.out.println(num);//把基本类型换成字符串String snum=i.toString();System.out.println(snum);//把字符串转化成基本类型String numstr="123";int i_num=Integer.parseInt(numstr);System.out.println(i_num);}}
    

    静态方法可以通过类名进行调用

装箱和拆箱

自动装箱:把基本类型的数据,自动转换成包装类型的对象
自动拆箱:把包装类型转成成基本类型

//自动装箱Integer i4=200;int a=200;Integer i2=a;//先把基本数据类型自动装箱成包装类型的对象,然后与i2相加的,得到包装类型的结果。Integer i1=i2+300;//自动拆箱:把包装类型的对象自动转成基本类型的数据//先把包装类的i1自动拆箱成int类型的数字。然后把数字赋给变量i3int i3=i1;System.out.println(i3);

正则表达式 regex

一个字符串,描述了一个规则,用来匹配某一个格式。

参照帮助文档

在Pattern类中有正则表达式的的规则定义,正则表达式中明确区分大小写字母。我们来学习语法规则。

正则表达式的语法规则:

字符:x
含义:代表的是字符x
例如:匹配规则为 “a”,那么需要匹配的字符串内容就是 ”a”

字符:\

含义:代表的是斜线字符’\’
例如:匹配规则为”\” ,那么需要匹配的字符串内容就是 ”\”

字符:\t

含义:制表符
例如:匹配规则为”\t” ,那么对应的效果就是产生一个制表符的空间

字符:\n

含义:换行符
例如:匹配规则为”\n”,那么对应的效果就是换行,光标在原有位置的下一行

字符:\r

含义:回车符
例如:匹配规则为”\r”,那么对应的效果就是回车后的效果,光标来到下一行行首

字符类:[abc]

含义:代表的是字符a、b 或 c
例如:匹配规则为”[abc]”,那么需要匹配的内容就是字符a,或者字符b,或字符c的一个

字符类:[^abc]

含义:代表的是除了 a、b 或 c以外的任何字符
例如:匹配规则为”[^abc]”,那么需要匹配的内容就是不是字符a,或者不是字符b,或不是字符c的任意一个字符

字符类:[a-zA-Z]

含义:代表的是a 到 z 或 A 到 Z,两头的字母包括在内
例如:匹配规则为”[a-zA-Z]”,那么需要匹配的是一个大写或者小写字母

字符类:[0-9]

含义:代表的是 0到9数字,两头的数字包括在内
例如:匹配规则为”[0-9]”,那么需要匹配的是一个数字

字符类:[a-zA-Z_0-9]

含义:代表的字母或者数字或者下划线(即单词字符)
例如:匹配规则为” [a-zA-Z_0-9] “,那么需要匹配的是一个字母或者是一个数字或一个下滑线

预定义字符类:.

含义:代表的是任何字符
例如:匹配规则为” . “,那么需要匹配的是一个任意字符。如果,就想使用 . 的话,使用匹配规则”\.”来实现

预定义字符类:\d

含义:代表的是 0到9数字,两头的数字包括在内,相当于[0-9]
例如:匹配规则为”\d “,那么需要匹配的是一个数字

预定义字符类:\w

含义:代表的字母或者数字或者下划线(即单词字符),相当于[a-zA-Z_0-9]
例如:匹配规则为”\w “,,那么需要匹配的是一个字母或者是一个数字或一个下滑线

边界匹配器:^

含义:代表的是行的开头
例如:匹配规则为^[abc][0-9]$ ,那么需要匹配的内容从[abc]这个位置开始, 相当于左双引号

边界匹配器:$

含义:代表的是行的结尾
例如:匹配规则为^[abc][0-9]$ ,那么需要匹配的内容以[0-9]这个结束, 相当于右双引号

边界匹配器:\b

含义:代表的是单词边界
例如:匹配规则为”\b[abc]\b”,那么代表的是字母a或b或c的左右两边需要的是非单词字符([a-zA-Z_0-9])
String regex = “.\b[abc]\b.“;
String str = “abc a bbc”;
booleanflag = str.matches(regex);

数量词:X?

含义:代表的是X出现一次或一次也没有
例如:匹配规则为”a?”,那么需要匹配的内容是一个字符a,或者一个a都没有

数量词:X *

含义:代表的是X出现零次或多次
例如:匹配规则为”a*”,那么需要匹配的内容是多个字符a,或者一个a都没有

数量词:X+

含义:代表的是X出现一次或多次
例如:匹配规则为”a+”,那么需要匹配的内容是多个字符a,或者一个a

数量词:X{n}

含义:代表的是X出现恰好 n 次
例如:匹配规则为”a{5}”,那么需要匹配的内容是5个字符a

数量词:X{n,}

含义:代表的是X出现至少 n 次
例如:匹配规则为”a{5, }”,那么需要匹配的内容是最少有5个字符a

数量词:X{n,m}

含义:代表的是X出现至少 n 次,但是不超过 m 次
例如:匹配规则为”a{5,8}”,那么需要匹配的内容是有5个字符a 到 8个字符a之间

逻辑运算符:XY

含义:代表的是X后跟Y
例如:匹配规则为”ab”,那么需要匹配的字符串内容就是 ”ab”

逻辑运算符:X|Y

含义:代表的是X 或 Y
例如:匹配规则为”a|b”,那么需要匹配的字符串内容就是 ”a”或”b”

逻辑运算符:(X)

含义:代表的是()括号内的数据作为一组数据出现,(X)的方式称为正则表达式中的组



public class RegexUtils {/*** 匹配手机号码是否合法*      手机号的规则*          1、1开头*          2、必须是11位数字*   @param mobile* @return*/public static boolean moblieRegex(String mobile){//手机号的正则表达式String mobileRegex="1[0-9]{10}";return mobile.matches(mobileRegex);}public static void main(String[] args) {String str="13673346754";System.out.println(moblieRegex(str));}
}

2017/10/18 12:30:17

java日期相关的类正则表达式相关推荐

  1. java时间的正则表达式_java日期相关的类正则表达式

    常用的API Date.Math.DateFormat.Calendar.正则表达式 Data类 public class DateDeom { public static void main(Str ...

  2. java 日期处理工具类_Java日期处理工具类DateUtils详解

    本文实例为大家分享了Java日期处理工具类DateUtils的具体代码,供大家参考,具体内容如下 import java.sql.Timestamp; import java.text.ParseEx ...

  3. Java日期相关类:Date、SimpleDateFormat和Calendar类常用API代码示例

    Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间 Date类的构造方法 Date() :创建的是一个表示当前系统时间的Date对象 Date(long ...

  4. java日期转化工具类

    package com.rest.ful.utils;import java.text.DateFormat; import java.text.ParseException; import java ...

  5. JAVA日期转换工具类

    java中经常会用到日期的转换,所有自己整理了一套日期转换的工具类,方便使用. 首先导入 <dependency><groupId>joda-time</groupId& ...

  6. java 日期的工具类_java 日期时间工具类

    package org.apache.pwd.util; import java.text.SimpleDateFormat; import java.util.Calendar; import ja ...

  7. java时间日期工具类_java工具类--日期相关;

    日期相关 Date类 1.通常使用的是java.util包 2.导包 拿来使用 构建对象 3.通常使用无参数的构造方法 或者带long构造方法 4.Date类中常用的方法 before(); afte ...

  8. Java日期时间类及计算

    1. Java中与日期相关的类 1.1 java.util包 类名 具体描述 Date Date对象算是JAVA中历史比较悠久的用于处理日期.时间相关的类了,但是随着版本的迭代演进,其中的众多方法都已 ...

  9. java 只有日期的类_JAVA日期和时间类彻底解决(1)[转]

    What's your time zone? JAVA日期和时间类彻底解决(1)Page 1 of 3 你是否在苦苦挣扎在JAVA语言中的日期和时间中?当你在计算机上显示日期和时间时,, 是否要快一个 ...

最新文章

  1. 结对开发----找出“水王
  2. iOS使用Charts框架绘制—柱形图
  3. VTK:Medical之MedicalDemo4
  4. html head 全局变量,Javascript全局变量的使用方法
  5. kafka python框架_为什么选择R而不是Python做ETL
  6. 大数据环境下的存储系统构建:挑战、方法和趋势
  7. 志汇叮咚超级外卖小程序源码6.4.3
  8. 【Linux】在Linux环境下使用VSCode调试C/C++程序
  9. UIView的Touch事件UIControlEvents详解
  10. java中static代码块_static怎样在java中修改代码块?
  11. Python进阶(二十)Python爬虫实例讲解
  12. html侧边导航栏,浮动侧边导航栏的基本布局
  13. 二值化网络(BNN)如何训练?这篇ICML 2021论文给你答案
  14. eve手游php,[Murky Army]EVE无烬星河PVP入门————小队战战术及队伍配置(
  15. Scala中Either两个子类Left/Right
  16. html页面涂鸦,HTML5 | Canvas画笔小应用(涂鸦板)
  17. preg_replace与远程代码执行
  18. OpenDDS有问必答
  19. LTR问题 position debias方法
  20. PHPMyWind支持PowerPoint导入

热门文章

  1. Typedef用法(转载)
  2. .Net Core MVC初学习
  3. hive lock命令的使用
  4. input样式和修改
  5. 【2018-01-22】HTML-表单及表单元素
  6. transition属性值
  7. JavaScript-学习一全局变量
  8. Android支付接入(五):机锋网
  9. UIView 的 autoresizingMask 属性 详解。
  10. MATLAB【九】————ICP算法实现