Java Date Dateformat 正则表达式 simpledateformat patter matcher

package javanate20180416;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Note {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//使用Date类直接创建日期对象
//无参构造:使用当前时间构造日期对象
Date a=new Date();
System.out.println(a);//得到当前时间日期对象
System.out.println(a.getTime());//得到当前时间毫秒数(自1970年1月1日00:00:00格林威治(GMT)时间以来)
//有参构造:使用指定时间毫秒数构造日期对象
Date b=new Date(1523874203948l);
System.out.println(b);
System.out.println("***************************************");
System.out.println("***************************************");
Date date=new Date();
System.out.println(date.getTime());
System.out.println(date.getDate());//已过时
System.out.println("***************************************");
System.out.println("***************************************");
/*Calendar类
Java提供Calendar类能更好的处理日期,Calendar类也在java.util包中
Calendar是抽象类,不能通过new来创建对象,可以通过getInstance方 法创建对象
在创建对象时,我们默认使用无参getInstance方法
Calendar cal = Calendar.getInstance();*/
//Calendar类中提供了大量的静态常量值,可以方便的获取各种时间数据
// 例如:年、月、日、时、分、秒、星期几等
Calendar cal = Calendar.getInstance(); 
System.out.println(" 年 :" + cal.get(Calendar.YEAR)); 
// 起始月份是0 
System.out.println(" 月 :" + cal.get(Calendar.MONTH)); 
System.out.println(" 日 :" + cal.get(Calendar.DAY_OF_MONTH)); 
System.out.println(" 时 :" + cal.get(Calendar.HOUR));
System.out.println(" 分 :" + cal.get(Calendar.MINUTE)); 
System.out.println(" 秒 :" + cal.get(Calendar.SECOND)); 
// 周日默认为一周的第一天 
System.out.println(" 星 期 :" + cal.get(Calendar.DAY_OF_WEEK));
System.out.println("***************************************");
System.out.println("***************************************");
//Calendar类有多种设置时间的方式
 //通过单个静态常量设置
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.YEAR, 2017); 
cal1.set(Calendar.MONTH, 2); 
cal1.set(Calendar.DAY_OF_MONTH, 14);
System.out.println(cal1.getTime());
//通过add方法和各种静态常量,可以方便的计算时间
cal1.add(Calendar.YEAR, 1);
System.out.println(" 年 :" + cal1.get(Calendar.YEAR));
System.out.println(" 月 :" + cal1.get(Calendar.MONTH)); 
System.out.println(" 日 :" + cal1.get(Calendar.DAY_OF_MONTH));
//通过多个参数直接设置时间
Calendar cal2 = Calendar.getInstance(); // 设置年月日
cal2.set(2017, 2, 14);
System.out.println(cal2.getTime());
   System.out.println("***************************************");
System.out.println("***************************************");
   /*为了更简单明了的显示时间,Java提供了日期格式类DateFormat类
 DateFormat类位于java.text包  
 DateFormat是为抽象类,有多种方法创建对象  
    使用format()方法格式化时间*/
Date date1 = new Date(); 
DateFormat df = DateFormat.getDateInstance(); //日
DateFormat df1 = DateFormat.getTimeInstance();//期
DateFormat df2 = DateFormat.getDateTimeInstance();//日期
System.out.println(df.format(date1)); 
System.out.println(df1.format(date1)); 
System.out.println(df2.format(date1));
/*SimpleDateFormat是DateFormat的子类 
       可通过字符串格式参数创建SimpleDateFormat对象
 可以选择任何用户定义的日期时间格式的模式 
       格式参数要采用指定模式字母来表示*/
//通过字符串格式参数创建SimpleDateFormat对象
Date date3 = new Date(); 
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); 
SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm:ss");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒"); 
String str1 = sdf1.format(date3); 
String str2 = sdf2.format(date3); 
String str3 = sdf3.format(date3); 
System.out.println(str1);
System.out.println(str2); 
System.out.println(str3); 
System.out.println("***************************************");
System.out.println("***************************************");
//正则表达式:普通字符,元字符
/*什么是正则表达式?
 简单来讲,正则表达式就是“符合一定规则的字符串”
 正则表达式由普通字符和元字符组成,其中元字符的使用是正则表达式的核心
 正则表达式常用来检索,替换符合某个模式的文本 */
/*正则表达式是一种非常强大的工具,例如:
 可以使用正则表达式写网页爬虫,抓取互联网上的数据
 可以使用正则表达式写HTML和js的解析器,实现简单的浏览器功能  作为程序员,在日常工作中也经常会用到正则表达式:
 在程序中校验密码、邮箱、手机号等字符串是否符合规则
 在项目或日志文件中搜索和提取你需要的信息
 Linux命令中大量使用正则表达式对命令结果做筛选和匹配*/
//元字符就是正则表达式中具有特殊含义的专用字符 
//        用于匹配特定字符的元字符
//  用于限定字符数量的元字符
//  用于约束字符边界的元字符
/*用于匹配特定字符的元字符: 最常见的是方括号 [ ],例如:*/
String a1="[abc]";// [abc] 匹配a, b, c中的任意一个;
String a2="b";//[^abc] 匹配任意一个非a, b, c的字符[a-zA-Z] 匹配a到z,
System.out.println(a2.matches(a1));//或A到Z的任意一个字符
String b1=".";//句号匹配任意字符
String b2="3";
System.out.println(b2.matches(b1));
String c1="\\d";//\d 匹配数字,相当于[0-9];
String c2="e";//\D 匹配非数字,相当于[^0-9]
System.out.println(c2.matches(c1));
String d1="\\W";// \w 匹配单词字符,相当于[a-zA-Z_0-9];
String d2="3";//\W 匹配非单词字符,相当于[^\w]
System.out.println(d2.matches(d1));
System.out.println("*******************************************");
System.out.println("*******************************************");
/*用于限定字符数量的元字符:
 最常用的是使用大括号 {},如下:
 {n} 恰好出现n次
 {n, m} 至少n次,至多m次; {n, } 至少n次,无上限*/
String e1=".{5}";
String e2="3ddsa";
System.out.println(e2.matches(e1));
//对于常用的数量限定,有简单的表示方式:
String f1="wqej?";//问号 ? 表示0次或1次
String f2="wqej";
System.out.println(f2.matches(f1));
String g1="d*";//星号 * 表示0次或多次
String g2="ddddd";
System.out.println(g2.matches(g1));
String h1="a+";// 加号 + 表示一次或多次
String h2="aaaaa";
System.out.println(h2.matches(h1));
System.out.println("*******************************************");
System.out.println("*******************************************");
String l1="^idff";//^ 表示行的开头
String l2="dhadsa$";//$ 表示行的结尾
String l3="\\ddhadsa\\d";//$ 表示行的结尾
String l4="dha|dsa";//A|B 匹配A或者B
String l5="(df){2}";// (ab){2} 匹配abab
String l55="dfdf";
System.out.println(l55.matches(l5));
System.out.println("*******************************************");
System.out.println("*******************************************");
//String类中的正则方法
//String类有三种方法支持正则表达式:
//字符串的匹配:public boolean matches(String regex)
//字符串的分割:public String[] split(String regex)
String m="dh au di hai d";
String []arr=m.split(" ");
for (String m1 : arr) {
System.out.println(m1);
}
System.out.println("*******************************************");
//字符串的替换:public String replaceAll(String regex, String replacement)
System.out.println(m.replaceAll(" ", "22"));
System.out.println("*******************************************");
System.out.println("*******************************************");
/*Java正则表达式的核心API在java.util.regex包中,有两个关键类:
 Pattern用来编译一个正则表达式
 Matcher用来执行正则表达式的匹配操作  
String类提供的正则相关方法,内部都是使用Pattern和Matcher实现的:
public final class String ... {
... 
public boolean matches(String regex) {
return Pattern.matches(regex, this); 

}*/
//Pattern和Matcher的标准用法有三步: 
// 使用Pattern来编译正则表达式:
Pattern pattern = Pattern.compile("[a-zA-Z]+");
//针对目标文本创建一个Matcher:
Matcher matcher = pattern.matcher("abc23we99nbkd3");
//执行想做的字符串操作,例如替换:
String result = matcher.replaceAll("3412"); 
System.out.println(result);
System.out.println("*******************************************");
System.out.println("*******************************************");
/*Matcher包含的方法很多,常用的有:
 Matcher.matches()可以用来匹配整个字符串,
         此时作用和String.matches()相同*/
Pattern n=Pattern.compile("dsa");
Matcher n1=n.matcher("dsa");
System.out.println(n1.matches());
System.out.println("*********************************************");
System.out.println("*********************************************");
// lookingAt()方法从头开始检测字符串中是否有匹配的子串,找到返回true
//  find()方法搜索下一个匹配的子串,找到返回true
//使用find()匹配成功后,可以用start()和end()拿到子串的位置:
Pattern q = Pattern.compile("[a-z]+"); 
String text = "The game is over."; 
Matcher w = pattern.matcher(text); 
while(w.find()) { 
// 等价于 String str = m.group(); 
String str = text.substring(w.start(),w.end()); 
System.out.print(str + "-"); 

}
}



阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭