Date对像的构建
Date类概述
类Date表示特定的瞬间,精确到毫秒,在Java1.1版本后Date API废弃了更多的方法,官方提倡使用Calendar以及使用DateFormat日期格式化类中的方法来代替Date类中许多被废弃的方法
Date类构造器
- public Date():创建一个本地时期的系统时间,不准确(与计算机时间相关,并非一定是当前时间)
- public Date(long date):提供一个long型的date参数作为时间毫秒数创建对象,这个毫秒数是自1970年开始到现在的总毫秒数
public static void main(String []args) {
/*无参构造器*/
Date date = new Date();//获取一个系统时间
System.out.println(date.toString());//将date以字符串形式输出
/*
* 输出结果为:Wed Aug 05 20:59:41 CST 2020
* 分别代表:周、月、日、时分秒、时间类型(此处为中央标准时间)、年
*/
/*以long型数据date为参数*/
Date date2 = new Date(1000);//从标准基准时间起延后1000毫秒,即1秒,标准基准时间:中央标准时间1970年1月1日8:00:00
System.out.print(date2.toString());
}
Date类常用方法
- public boolean after(Date when):判断调用者时间是否晚于给定时间
- public boolean before(Date when):判断调用者时间是否早于给定时间
- public int compareTo(Date anotherDate):将调用者与另一Date对象比较,若调用者大则返回1,两者等则返回0,调用者小则返回-1
- public long getTime():将时间转化为long型毫秒数返回,此毫秒数开始于标准基准时间1970/1/1 8:00:00
- public void setTime(long time):以long型毫秒数设置时间,与以long为参数的构造器类似
- public String toString():将date对象以字符串形式输出,输出格式为:周、周、月、日、时分秒、此处为中央标准时间、年
Date date1 = new Date(1000);
Date date2 = new Date(3000);
/*时间大小判断*/
boolean bool1 = date1.after(date2);//date1不晚于date2,返回false
boolean bool2 = date1.before(date2);//date1早于date2,返回true
/*获取时间差值*/
int D_Value = date1.compareTo(date2);//此处date1小于date2,返回-1
/*返回long型的毫秒数*/
long Msec = date1.getTime();//返回1000
/*返回字符串类型*/
String date = date1.toString();//返回Thu Jan 01 08:00:01 CST 1970
Calendar对象的构建
Calender是一个抽象类,没有构造器,但具有多个静态方法用于构建C
alendar对象
Calendar用于构建对像的静态方法
public static Calendar getInstance():获取默认的所在的JVM的系统时间和默认时区的日历对象
Calendar的主要常量字段(字段作用类似于索引)
- public static final int AM:提示从午夜到中午之前这段时间内的AM_PM字段值1
- public static final int PM:提示从中午到午夜这段时间之内的AM_PM字段值1
- public static final int YEAR:日历中的年份 1
- public static final int MONTH:日历中当年的月份,从0开始 2
- public static final int DATE:日历当月的天,从1开始5
- public static final int HOUR:日历12小时制表示0-11 10
- public static final int HOUR_OF_DAY:日历24小时制表示11
- public static final int MINUTE:指示一小时中的分钟12
- public static final int SECOND:指示一分钟中的秒13
10.public static final int MILLISECOND:指示一秒钟的毫秒 14
Calendar的主要方法
- public abstract void add(int field,int value):更改日历中某个字段field的值
- public boolean after(Object when):判断日历当前时间是佛在给定时间之后
- public boolean before(Object when):判断日历当前时间是否在给定时间之前
- public int compareTo(Calendar anotherCalendar):比较两个Calendar的时间大小,调用者大则返回1,等则返回0,小则返回-1
- public final Date getTime():获取日历当前时间对象
- public void set(int field,int value):将给定的日历字段field设置为给定value
- public final void set(int year,int month,int date):设置日历的年份、月份、日期值
- public final void set(int year,int month,int date,int hourOfDay,int minute,int second):设置日历的年、月、日、时、分、秒的值
Calendar cd = Calendar.getInstance();//使用默认时区并指向当前系统时间创建一个日历实例
/*判断两日历时间*/
int a = cd.compareTo(Calendar.getInstance());//以int返回表示两者大小,此处返回1
boolean bool1 = cd.after(Calendar.getInstance());//返回true
boolean bool2 = cd.before(Calendar.getInstance());//返回false
/*获取当前时间对象*/
Date date = cd.getTime();//输出为Fri Aug 05 23:08:26 CST 2022
/*更改字段下的value*/
int year=2022;
cd.set(Calendar.YEAR, year);//将2021设置到日历的年份字段中
/*设置日历的年份、月份、日期值*/
cd.set(2021, 0, 1);//月份从0开始
/*设置日历的年、月、日、时、分、秒的值 */
cd.set(2021, 0, 1, 0, 0, 0);
System.out.print(cd.getTime());
Math类的概述
Math类定义了数学运算的基本功能,Math类中所有属性及功能方法都定义为static的,Math类不需要创建实例,Math类是final修饰的终极类,不能被继承。
Math类的常量字段
- public static final double E:自然对数的底数(2.718281828459045)通常用于科学领域的计算使用
- public static final double PI:圆的周长和直径的比,即圆周率表示值(3.141592653589793)
Math常用方法
- public static double abs(double|float|long|int num):求绝对值
- public static double cbrt(double num):求立方根
- public static double ceil(double num):返回大于等于给定值的最小数,该值等于某个整数
- public static double floor(double a):返回小于等于给定值的最小数,该值等于某个整数
- public static double max(double a,double b):返回两数最大值
- public static double min(double a,double b):返回两数最小值
- public static double pow(double a,double b):返回第一个参数的第二个参数次幂的值
- public static double random():返回带正号的double值,该值大于等于0.0且小于1.0的随机数
double num = -1;
double num2 = 3;
/*绝对值*/
Math.abs(num);
/*立方根*/
Math.cbrt(num2);
/*返回前后整数*/
Math.ceil(num);//返回大于等于给定值的最小数,该值等于某个整数
Math.floor(num2);//返回小于等于给定值的最小数,该值等于某个整数
/*比大小*/
Math.max(num, num2);//此处返回num2
Math.min(num, num2);//此处返回num
/*求次幂值*/
Math.pow(num, num2);
/*获得随机0-1小数*/
Math.random();
System.out.print(Math.random());