java日期相关的类正则表达式
常用的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
相关文章:

M_Map画南海水深地形图
数据来自Etopo1全球地形和水深数据。 其分为两个版本,Ice Surface和Bedrock,两个版本基本一致。不同之处在于在处理南极洲和Greenland地形时,前者给出的是加上冰盖层之后的高程,后者给出的是岩床的高程。 在每个子版本下又有多种数…

blackberry Jvm error 104 错误(Device Simulator)
把模拟器目录下的这个文件 **-fs.dmp 删掉或者搬个家就成啦,然后重启模拟器 每次启动它都会生成这个文件,具体原因还待研究 8300 GSM GPRS EDGE8310 8300 GPS8320 8300 Wi-Fi8330 8310 CDMA Ev-DO Video Recording (!)转载于:https://www.c…

关于Map的key值的问题
HashMap<StringBuffer,String> strmap new HashMap<>();StringBuffer snew StringBuffer("1");strmap.put(s,"1");s.append("2");System.out.println(strmap.get("1")); null 与之前研究的value值的问题一样,…

田志刚:要你共享,但不告诉你共享什么
案例所述的问题很典型,是国内各类机构做知识管理的一个典型:我需要你共享,但不告诉你共享什么。问题是,我也不知道你该共享什么。这样的结果就是共享出来的东西都没用也都有用,因为你根本没有标准,所以我说…

Oracle Data Guard 理论知识
RAC, Data Gurad, Stream 是Oracle 高可用性体系中的三种工具,每个工具即可以独立应用,也可以相互配合。 他们各自的侧重点不同,适用场景也不同。 RAC 它的强项在于解决单点故障和负载均衡,因此RAC 方案常用…

JavaScript脚本文件学习总结
javaScript 学习总结 什么是JavaScript和javaScript的特点 是一种解释型脚本语言(代码不进行预编译),不需要进行编译,直接嵌套在HTML页面,将静态的页面转变成支持用户交互的动态页面。 文件类型是.js 特点 解释性&…

Git note
feat:新功能(feature) fix:修补bug docs:文档(documentation) style: 格式(不影响代码运行的变动)注意不是 css 修改 refactor:重构(即…

说客是一种俗文化
说客是一种俗文化阿祥中国移动旗下的139.com社区改版,没有张扬,也没有滥发广告,还是引起了业内人士的广泛减少。为什么?以笔者之见,这个改版后的社区打出“说客”这张牌,是互联网文化的一个全新的创意&…
leetcode 203 Remove Linked List Elements
Remove all elements from a linked list of integers that have valueval. ExampleGiven: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val 6Return: 1 --> 2 --> 3 --> 4 --> 5 我的解法: // Linklist.cpp …

eclipse实用快捷键
eclipse的快捷键非常的多,全部记录一遍也不利于查看,记录一些比较实用的更加方便。 ctrl / 注释单行/取消注释 ctrl Z 回退一步 ctrl Y (回退后)前一步 ctrl S 保存 ctrl D 删除行 alt / 补全提示 ctrl …

集合 泛型 迭代器
什么是集合 集合与数组的区别 数组的长度是固定的,集合的长度是可变的数组中可以存储任何类型的元素(基本类型和引用类型),集合只能存储引用类型的。 集合 在java中提供了很多的集合,因为用户要求存储不同接口的数据…

《监控》再起风云,连同创作中的《监控2》成功牵手影视公司
“监控”,辞海上的解释为:监测并进行控制。 “监控”,百度百科解释为:监控,职场谍战小说。 从2个月内超过230万人阅读的天涯热帖,到上市两月即获重印的畅销图书,神秘作者搏击带着他的《监控》在…

跟我学交换机配置(四)
以下内容摘自笔者最新图书《Cisco/H3C交换机配置与管理完全手册》。本书在51CTO上的样章试读地址为:http://book.51cto.com/art/200908/142118.htm 8.5.4 创建PVLAN 在IOS和CatOS系统交换机中都可以配置PVLAN,所以下面也分别予以介绍。 1. IOS系统交换机…

使用nc传输文件和目录【转】
方法1,传输文件演示(先启动接收命令) 使用nc传输文件还是比较方便的,因为不用scp和rsync那种输入密码的操作了把A机器上的一个rpm文件发送到B机器上需注意操作次序,receiver先侦听端口,sender向receiver所在…

假如有Thread1、Thread2、ThreaD3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?...
有两种方法: 第一种方法: 一般情况,我们实现多线程都是Thread或者Runnable(后者比较多),但是,这两种都是没返回值的,所以我们需要使用callable(有返回值的多线程)和future(获得线程的返回值)来实现了。 /**…

ORA-00907:缺少右括号
在创建以下表的时候出现ORA-00907:缺少右括号的错误,最后发现是字符串类型写错了,VARCHAR2写成了VARCAHR2, /**//* DBMS name: ORACLE Version 9i2 *//* Created on: 2010-4-23 12:28:27 …

Java Web项目第二次总结
学生管理系统 问题 jQuery 不熟悉El需要复习servlet的内置对象 新认识的知识 利用servlet的 Session对象实现权限的验证。它的作用是:只能通过登录后才能进入主界面,否则不能进入。没有加权限验证前是可以根据页面的完整路径进入主界面,可以不输入密…

软件项目中的需求分析具体方法探讨之一
这家单位,我进去没多久,满打满算也就刚两月多一周而已。我也不是开发部的人,但是,看到了一些事情,纯为有感而发。领导想做个CRM,于是,开发部的人写了,当然,正式的需求分析…

portscaner 多线程、多协程并发端口扫描
import socket,time,re,sys,os,threading import gevent from gevent import monkey monkey.patch_all()socket.setdefaulttimeout(2)#该方法用来处理用户数据的port范围,并计算范围内的port,将其添加到列表中,将列表返回 def handle_port(in…

POJ 2828 Buy Tickets | 线段树的喵用
题意: 给你n次插队操作,每次两个数,pos,w,意为在pos后插入一个权值为w的数; 最后输出1~n的权值 题解: 首先可以发现,最后一次插入的位置是准确的位置 所以这个就变成了若干个子问题, 所以用线段树维护一下每个区间剩余多少位置可选 对于一个pos 如果左儿子的剩余超过当前位置,就…

Ext结合DWR的关键代码(运行成功的DWRProxy)
关键代码如下:Store为:var ds new Ext.data.Store({ proxy: new Ext.data.DWRProxy({ callback: Folder.getMessageList, params: { start: 0, limit: PAGE_SIZE } }), // proxy: new…

serlvet 九大内置对象
隐式对象 说明 request 转译后对应HttpServletRequest/ServletRequest对象 response 转译后对应HttpServletRespons/ServletResponse对象 session 转译后对应HttpSession对象 application 转译后对应ServletContext对象 out 转译后对应JspWriter对象,其…

网路游侠:某软件版WEB应用防火墙试用
去年的这个时候,游侠(www.youxia.org)认为WAF都是硬件的,后来在网上看到这个在国内做的不错的牌子。居然是软件的WAF,这样的话,一些服务器在机房托管的用户就特别需要这样的产品,因为1U的设备在电信机房的托管费用都有…

P2172 [国家集训队]部落战争 二分图最小不相交路径覆盖
二分图最小不相交路径覆盖 #include<bits/stdc.h> using namespace std; const int MAXN 5550; const int MAXM 1000005; const int INF 1000000050; int Head[MAXN], cur[MAXN], lev[MAXN], to[MAXM << 1], nxt[MAXM << 1], f[MAXM << 1], ed 1, …

IO流 字符流 字节流 缓冲流 文件的复制
IO流 IO概述 IO流就是一个管道,是用来在设备之间传输数据 input:相对于内存/程序 往进走输入流 output:相对于内存/程序 往硬盘写入 分类 根据数据进出方式 1、输出流: FileWriter 字符输出流BufferedWriter 字符缓冲输出…

强烈推荐:240多个jQuery插件
http://www.cnblogs.com/Terrylee/archive/2007/12/09/the-ultimate-jquery-plugin-list.html转载于:https://www.cnblogs.com/HughTan/archive/2010/05/14/1735376.html

FreeBSD Ports加速的方法
使用代理。 在/etc/make.conf中设置:FETCH_ENV "HTTP_PROXYIP[:端口]"如果需要,在FETCH_ENV值后面加入空格,HTTP_PROXY_AUTHbasic:*:user:password利用其他机器下载的文件... 首先,请确保2台机器cvsup的一致࿰…

AngularJS ng-if使用
示例中,根据ng-if指令显示不同任务状态,以及判断任务是否可以操作 <div ng-app"NgifDemoApp" ng-controller"NgifDemoContrl as vm"><h1>任务列表</h1><table class"table"><thead><tr&…

一、Tableau基础
有关函数的官方文档:https://onlinehelp.tableau.com/current/pro/desktop/zh-cn/functions_functions_string.htm 注意事项: 1.记录数:是Tableau自动给每行观测值赋值为1。 2.维度的字段,是不能用于计算的,若是要用于计算&#x…

关于OGNL表达式中的%,$,#
OGNL表达式非常强大~其中#、%、$这三个符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分,要认真区分。1.#符号的用途一般有三种。 1)访问非根对象属性,例如示例中的#session.msg表达式&#…