日期类
Java中,表达日期需要用到以下几个常用类
–java.util.Date(存在设计缺陷,目前已被Calendar类基本取代 )
–java.util.Calendar(表示日历的抽象类)
–java.text.DateFormat
Date类
获取当前日期:Date d = new Date();
设置日期:
d.setYear(81);
代表相距1900年81年,即1981
d.setMonth(9);
0代表一月,以此类推
–d.setDate(24);
表示24日
输出:
System.out.println(d);
//run:Sat OCT 01 10:02:45 CST 1981
Calendar类
获取当前时间:
使用Calendar类的static方法getInstance()
可以初始化一个日历对象,默认指向当前时间,如:
Calendar c = Calendar.getInstance();
设定日期:
set(int year,int month,int date)
或设置精确到秒:set(int year,int month, int date, int hour, int minute,int second)
这里的月份也是从0开始索引!!!!!
其他常用方法:
int get(int field)
:可以获取有关年份、月份、小时、星期等信息,参数field的有效值由Calendar的静态常量指定,例如:c.get(Calendar.MONTH);
getTime()
:返回一个Date对象
getTimeInMillis()
:返回长整数,表示距离1970年1月1日零时零分零秒的毫秒数
compareTo(Calandar a):与另一日历日期比较:相等返回0;after a返回1;before a返回-1
Calendar c = Calendar.getInstance();
c.set(2021, 5, 7);
Calendar c1 = Calendar.getInstance();
c1.set(2030, 5, 7);
System.out.println((c1.getTimeInMillis()-c.getTimeInMillis())/(1000*60*60*24));//输出相距天数
/*
run:3287
*/
日期格式化
主要是通过SimpleDateFormat
类的format(Date)
方法,返回指定格式的字符串。
Date d = new Date();
d.setDate(7);
d.setMonth(6);
d.setYear(120);
SimpleDateFormat sdf = new SimpleDateFormat("大喊一声:yyyy年MM月dd日 HH:mm:ss奥里给!");
String s=sdf.format(d);
System.out.println(s);
Calendar c = Calendar.getInstance();
c.set(2021, 5, 7);
String s1=sdf.format(c.getTime());
System.out.println(s1);
run:
大喊一声:2020年07月07日 21:43:36奥里给!
大喊一声:2021年06月07日 21:43:36奥里给!
也可以使用String
类的format
方法
Date date = new Date();
String ss1 = String.format("%tF", date);
String ss2 = String.format("%tI:%<tM:%<tS", date);
System.out.print(ss1 + "\n" + ss2 + "\n");
run:
2020-03-31
09:49:45
Math类
Math类提供了很多静态方法用来进行数学运算,如:求平方根、绝对值、获取随机数等。
两个常量:
Math.E
:2.718281828459045 Math.PI
: 3.141592653589793
常用方法:(都是static静态方法,不需要实例化使用)
- long abs(double a):求绝对值
- double max(double a,double b) :求最大值
- double min (double a,double b) :求最小值
- double random():产生随机数
- double pow(double a,double b):求a的b次幂
- double sqrt(double a):求平方根
- double log(double a):求对数
- double sin(double a):求正弦值
- double asin(double a):求反正弦值
- ......