System类
System 类包含一些有用的类字段和方法。它不能被实例化。
方法:
public static void gc()//调用垃圾回收器
public static void exit(int status)//退出java虚拟机 0 为正常退出 非0为 异常退出
public static long currentTimeMillis()//获取当前时间的毫秒值
BigDecimal类
在运算的时候,float类型和double很容易丢失精度,所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal不可变的、任意精度的有符号十进制数。
构造方法
public BigDecimal(String val)
成员方法
public BigDecimal add(BigDecimal augend)//加
public BigDecimal subtract(BigDecimal subtrahend)//减
public BigDecimal multiply(BigDecimal multiplicand)//乘
public BigDecimal divide(BigDecimal divisor)//除法
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)//scale 小数点后面保留几位
// roundingMode 取舍模式 比如四舍五入
Date类
类 Date 表示特定的瞬间,精确到毫秒。
构造方法
public Date()
public Date(long date) //把一个long类型的毫秒值转换成一个日期对象
成员方法
-
public long getTime(): 获取一个日期对象对象毫秒值 public void setTime(long time): 给一个日期对象设置上指定的毫秒值
转换问题
Date ---- long 的转换
调用getTime方法
long --- Date 的转换
可以使用构造方法
setTime(long time)
SimpleDateFormat类
SimpleDateFormat: 可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象
-
构造方法:
-
public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
-
public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
-
规则的定义
-
y 年
-
M 月
-
d 天
-
H 时
-
m 分
-
s 秒
-
成员方法:
-
public String format(Date date): 把一个日期对象格式化成一个字符串
-
public Date parse(String dateStr): 把一个日期字符串解析成一个日期对象 注意要以指定格式解析
-
看代码
请编写程序,完成获取指定的日期 与今天相距多少天,并测
试
`public class Demo3 {
public static void main(String[] args) throws ParseException {
SimpleDateFormat a=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);//特定格式
String d=“2018-10-20 22:50:00”;
Date date=a.parse(d);
long s1=date.getTime();//将时间转为毫秒
long s2=System.currentTimeMillis();//得到当前的毫秒
int day=(int)(s2-s1)/1000/60/60/24;
System.out.println(“距现在已有”+day+“天”);}
}
`public class Demo3 {
public static void main(String[] args) throws ParseException {
SimpleDateFormat a=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);//特定格式
String d=“2018-10-20 22:50:00”;
Date date=a.parse(d);
long s1=date.getTime();//将时间转为毫秒
long s2=System.currentTimeMillis();//得到当前的毫秒
int day=(int)(s2-s1)/1000/60/60/24;
System.out.println(“距现在已有”+day+“天”);}
}
日期工具类的编写和测试
A:案例演示
日期工具类的编写
日期工具类的测试
接下来分析一个问题,计算你来到这个世界多少天
思路步骤:
-
a: 键盘录入一个生日(日期字符串)
-
b: 把这个日期字符串对象解析成一个日期对象
-
c: 获取b中的日期对象对应的毫秒值
-
d: 获取当前系统时间对应的毫秒值
-
e: 使用d中的毫秒值 - c中的毫秒值
-
f: 把e中的差值换算成对应的天 差值/1000/60/60/24
-
g: 输出
Calendar类的概述和获取日期
Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象
有YEAR、MONTH、DAY_OF_MONTH、HOUR
成员方法
public static Calendar getInstance() 使用默认时区和语言环境获得一个日历对象
public int get(int field) 获得给定日历字段对应的值 field通过Calendar提供的字段来拿
Calendar类的add()和set()方法
public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
public final void set(int year,int month,int date) 设置日历时间 年月日
例题:获取任意年份的2月份有多少天
// 创建一个Scanner对象
Scanner sc = new Scanner(System.in) ;
// 友情提示
System.out.println("请您输入一个年: ");
// 获取键盘录入数据
int year = sc.nextInt() ;
// 创建Calendar对象
Calendar calendar = Calendar.getInstance() ;
// 把这个Calendar的时间设置为a中录入的年的3月1号
calendar.set(year, 2 , 1) ;
// 向前推算一天
calendar.add(Calendar.DAY_OF_MONTH, -1) ;
// 获取
int day = calendar.get(Calendar.DAY_OF_MONTH) ;
// 输出
System.out.println(day);
补充:判断是不是一个闰年
if(year%4==0&&year%100!=0||year%400==0){
System.out.println("是闰年");
}