Object类:
a.equal(obj) :比较的是地址值
Object.equal(a,b):包容性较强 // a可能为空值
Date类:
时间原点:1970-1-1 00:00:00(英国格林威治)
->中国 1970-1-1 08:00:00
1、
打印当前系统时间距离时间原点经过了多少毫秒:
Date d = new Date();
System.out.println(d3.getTime());
System.out.println(System.currentTimeMillis());
// 两种方法等效
2、
毫秒与日期转换:
1天=24x60x60=86400秒=86400*1000=86400000毫秒
Date d1 = new Date(); // new Date(date) 当前日期
System.out.println(d1);
System.out.println(System.currentTimeMillis());//当前时间毫秒1597592188066
Date d2 = new Date(1597592188066L);
System.out.println(d2); // new Date(long date) 将毫秒转换为日期
DateFormat:
作用:格式化(Date日期->文本)、解析(文本->Date日期)
模式:(区分大小写)
y 年、M 月、d 日、H 时、m 分、s 秒
1、使用DateFormat类中的方法format,把日期格式转换为文本
(若new SimpleDateFormat()括号里面不写,则默认格式为:2020/8/17 下午6:57 也可以自行确定格式)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date d = new Date();
String text = sdf.format(d);
System.out.println(text);
2、使用DateFormat中的方法parse方法,把文本解析为Date日期
public class Test {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat();
String s = sdf.format(new Date());
System.out.println(s);
// 2020/8/17 下午7:11
Date date = sdf.parse(s);
System.out.println(date);
//Mon Aug 17 19:11:00 CST 2020
}
}
例题:计算一个人出生的天数
// 1.获取String文本格式的出生日期
Scanner input = new Scanner(System.in);
System.out.println("请输入您的出生日期,格式为: yyyy-MM-dd");
String bir = input.next();
// 2.将String文本类型的出生日期转换为Date类型
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(bir);
// 3.当前时间的毫秒-出生日期的毫秒 (只有毫秒才能加减)
long day = System.currentTimeMillis() - date.getTime();
// 4.将毫秒转换为天
System.out.println(day/1000/60/60/24);
请输入您的出生日期,格式为: yyyy-MM-dd
2000-04-18
742
Calendar类的成员方法:
1、返回给定日历字段的值
Calendar c = Calendar.getInstance(); // 体现了多态,因为calendar是抽象类
//获取年
int year = c.get(Calendar.YEAR);
System.out.println(year);
//获取月,西方的月份是 0-11,所以+1
int month = c.get(Calendar.MONTH+1);
System.out.println(month);
//获取某日
int day = c.get(Calendar.DATE);
System.out.println(day);
int day1 = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day1);
2、将给定的日历字段设置为定值
c.set(Calendar.YEAR, 2088);
c.set(Calendar.MONTH, 8); ///九月
c.set(Calendar.DATE, 8);
c.set(2088, 8, 8);
3、根据日历的规则,为给定的日历字段添加或减去指定的时间量
c.add(Calendar.YEAR, 2); //增加两年
c.add(Calendar.MONTH, -3);//减少三个月
4、将日历转换为日期
Calendar c2 = Calendar.getInstance();
Date date = c2.getTime();
System.out.println(date);