常用API【Date、DateFormat、Calendar、Math、System、包装类、正则表达式】

java.util.Date 日期类
构造方法
public Date() 返回的是当前时间 也就是1970-1-1到所经历多少毫秒来表示的时刻
public Date(long 毫秒值) 返回指定毫秒值的时间

方法
long getTime()返回当前时间的毫秒值
void setTime(long 毫秒值) 设置当前时间的毫秒值

时间原点:1970-01-01 00:00:00
毫秒:千分之一秒 1秒 = 1000毫秒

java.text.DateFormat 日期格式化类
抽象类不能创建对象 需要使用其子类 java.text.SimpleDateFormat
构造方法
public SimpleDateFormat() 默认格式创建日期格式化类对象
public SimpleDateFormat(String pattern) 给定格式
将日期转换为指定格式的字符串
String format(Date date) 将日期转换为字符串
将字符串转换为日期
Date parse(String source) 将字符串转换为日期

 1 public static void main(String[] args) throws ParseException {
 2         //将当前时间转换为指定格式的字符串
 3         //创建当前时间对象Date
 4         Date now = new Date();
 5         //创建日期格式化类对象DateFormat
 6         DateFormat df = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss E");
 7         //调用format方法 将日期转换为字符串
 8         String s = df.format(now);
 9         //打印字符串
10         System.out.println(s);
11         System.out.println("---------------------");
12         //获取1949-10-01这个字符串时间的毫秒值
13         //定义字符串
14         String sDate = "1949-10-01";
15         //创建日期格式化类对象DateFormat对象
16         DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
17         //调用parse方法 将字符串转换为Date类型对象
18         Date d = df2.parse(sDate);
19         //调用Date类的getTime方法获取毫秒值
20         long time = d.getTime();
21         System.out.println(time);
22     }

java.util.Calendar 日历类
静态方法创建对象
Calendar getInstance() 返回的是Calendar的子类对象
方法
int get(int field) 根据给定字段获取时间
void set(int field,int time) 设置指定字段的时间
void set(int year,int month ,int day) 直接设置年月日
Date getTime() 将日历对象转换为日期对象
void add(int field ,int time) 为指定自定添加或者减少时间

 1 public static void main(String[] args) {
 2         Calendar c = Calendar.getInstance();
 3         System.out.println(c);
 4         
 5         int i = c.get(Calendar.MONTH);
 6         System.out.println(i);
 7          i = c.get(Calendar.DATE);
 8         System.out.println(i);
 9         i = c.get(Calendar.DAY_OF_MONTH);
10         System.out.println(i);
11         System.out.println("---------------------");
12         //将年份设置为 2018
13         c.set(Calendar.YEAR, 2018);
14         //将月份设置为10月
15         c.set(Calendar.MONTH, 9);
16         //直接设置年月日
17         c.set(1949, 9, 1);
18         System.out.println("-------------");
19         //为指定年份 -1
20         c.add(Calendar.YEAR, -1);
21         
22         //将日期转换为日期
23         Date d =c.getTime();
24         System.out.println(d);
25     }
 1 获取出生了多少天案例代码
 2 public static void main(String[] args) throws Exception {
 3         Scanner sc = new Scanner(System.in);
 4         System.out.println("请输入您的出生日期(xxxx-xx-xx):");
 5         String birthDay = sc.nextLine();
 6         int day = getDay(birthDay);
 7         System.out.println("您出生了:"+day+"天");
 8     }
 9     /*
10      * 将给定的字符串转换为Date类 获取毫秒值
11      * 创建时间对象 获取毫秒值
12      * 天数 = (当前时间毫秒值 - 生日时间毫秒值)/1000/60/60/24
13      */
14     public static int getDay(String brithDay) throws Exception{
15         //创建DateFormat对象
16         DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
17         //调用parse方法 将字符串转换为Date类型
18         Date brith = df.parse(brithDay);
19         //获取生日日期的毫秒值
20         long birthTime = brith.getTime();
21         //获取当前时间的毫秒值
22         long nowTime = new Date().getTime();
23         //天数 = (当前时间毫秒值 - 生日时间毫秒值)/1000/60/60/24
24         int day = (int)((nowTime-birthTime)/1000/60/60/24);
25         return day;
26     }
 1 获取指定年份的2月有多少天
 2 思路:
 3 获取到指定年份的3月1号
 4 将日期天数-1 即使2月的最后一天
 5 获取对象的当前月的天数
 6 public static void main(String[] args) {
 7         int day = getDay(2016);
 8         System.out.println(day);
 9     }
10 public static int getDay(int year){
11         //创建Calendar对象
12         Calendar c = Calendar.getInstance();
13         //获取到指定年份的3月1号
14         c.set(year, 2, 1);
15         //将日期-1
16         c.add(Calendar.DATE, -1);
17         //获取当前月的日期
18         int day = c.get(Calendar.DAY_OF_MONTH);
19         
20 //        Date time = c.getTime();
21 //        System.out.println(time);
22         
23         return day;
24     }
25     

数组的工具类 java.util.Arrays
static void sort(xxx[] xx) 数组排序
static String toString(xxx[] xx) 将数组转换为字符串

java.lang.System
构造方法私有 不能创建对象 所有方法静态 类名直接调用
方法
static void exit(int 状态码 ) 退出虚拟机 0 正常退出
static void gc() 暗示垃圾回收器回收垃圾
static String getProperty(String key) 获取系统的指定属性值

获取当前时间毫秒值
1.Date类getTime方法
2.Calendar类 long getTimeInMillis()
3.System类 static long currentTimeMillis()

数组的复制
static void arraycopy(Object src,
  int srcPos,
  Object dest,
  int destPos,
  int length)
复制数组
object src:源数组
int srcPos:源数组的开始复制的索引
Object dest:目标数组
int destPos:目标数组复制到的索引
int length:复制的长度

数学工具类
java.lang.Math
static int abs(int a) 返回绝对值
static long round(double a) 四舍五入
static int round(float a)
static double ceil(double a) 向上取整
static double floor(double a) 向下取整
static int max(int a, int b) 两个数最大值
static int min(int a, int b) 两个数最小值
static double pow(double a, double b) a的b次幂

java.lang.Integer
将字符串转换为基本类型
static int parseInt(String s)
基本类型转换为字符串
String s = 1+"";
String的方法 String valueOf(int a)

基本类型和对象之间的转换
int---Integer
public Integer(int i)
public Integer(String i)
Integer---int
int intValue()

JDK1.5 自动拆箱 自动装箱
int -- Integer
Integeer --int

byte常量池细节,如果定义的数 在-128到127之间 存在此变量 那么JVM将不再创建新的对象

正则表达式
[] 里面的内容 任选其一
[^ ] 除了里面的内容都行
[a-zA-Z_0-9] 字母数字下划线都可以 将字母数字下划线 放到一起 取了个名字 单词字符
? 0-1次
* 任意次
+ 至少1次
{n} 恰好n次
{n,} 至少n次
{n,m} n-m次 包含n 包含m

 1 正则表达式:表示正确规则的字符串
 2 检验QQ号
 3          1.长度 5-12
 4          2.0不能开头
 5          3.纯数字
 6 public static boolean checkQQ2(String qq) {
 7 //        String regex = "[1-9][0-9]{4,11}";
 8 //        boolean b = qq.matches(regex);
 9 //        return b;
10         
11         return qq.matches("[1-9][0-9]{4,11}");
12     }
原文地址:https://www.cnblogs.com/caigq/p/7019504.html