Object类*
是Java中所有类的祖宗类。
一个类要么默认继承了Object类,要么间接继承了Object类。
Object类提供了很多的方法(功能)。
包是:java.lang.Object,不需要导包就可以直接使用。
常用方法:
1.public String toString();
默认是直接返回对象在堆内存中的地址。
如果希望输出对象的时候,能够直接看到对象的内容。
那么需要重写toString()方法,可以自动生成!
2.public boolean equals(Object obj);
作用:默认是比较两个对象的地址是否一样。
开发中如果需要比较两个对象的内容,需要重写equals.
String类型默认就重写了equals,默认就是比较内容。
Date日期类:
包: java.util。
构造器:public Date():创建系统此刻当前日期对象。
-- public Date(long time): 把时间毫秒值转换成日期对象。
方法: public long getTime()
Java时间的两种形式:
1.当前系统此刻日期对象:Date对象。
2.时间毫秒值。
-- 计算机认为时间是有起源的,从1970-01-01 00:00:00开始走到此刻总的时间毫秒值。
1s = 1000ms
Date日期对象 => getTime() => 时间毫秒值。 为了做时间运算。
时间毫秒值 => new Date(时间毫秒值) => 日期对象。 为了看时间。
有参数构造器可以把时间毫秒值转换成日期对象。
public class Demo {
public static void main(String[] args) {
// 需求:此刻开始121s后的时间是多少。
// 1.此刻日期对象:此刻时间
Date d = new Date();
System.out.println(d);
// 2.Date日期对象 => getTime() => 时间毫秒值。
// 把Date日期对象转换成时间毫秒值
long time = d.getTime();
// 3.把时间毫秒值往后走 121s
time += 121*1000 ;
// 4. 时间毫秒值 => new Date(时间毫秒值) => 日期对象
Date d1 = new Date(time);
System.out.println(d1);
}
}
DateFormat日期格式化类
SimpleDateFormat:
包:java.text
方法:
1.public String format(Date d): 把日期对象进行格式化返回。
2.public String format(Object time):把时间毫秒值格式化返回。
构造器: public SimpleDateFormat(String pattern){}
SimpleDateFormat格式化日期对象/时间毫秒值。
SimpleDateFormat解析字符串时间成为一个日期对象。
public class DateFormatDemo {
public static void main(String[] args) {
// 1.创建一个日期对象
Date d = new Date();
System.out.println(d); // 时间不好看。
// 2.开始格式化日期对象成为自己喜欢的格式。
//a.创建一个简单日期格式化对象:帮助我们格式化时间
参数:申明格式化最终的标准形式。匹配语法。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss ");
//b.把日期对象开始格式化返回
String rs = sdf.format(d);
// c.输出
System.out.println(rs);
}
}
public class DateFormatDemo {
public static void main(String[] args) throws ParseException {
// 开发中:界面选中的时间到后台都是字符串。字符串必须转成日期对象。
// 面试题: 我现在有个时间”2018-02-09 10:22:24“.
// 请问:16小时10分10s后的时间是多少。
String time = "2018-02-09 10:22:24";
// (1)把字符串直接转换成日期对象。
// 创建一个简单日期格式化对象来解析字符串时间。
// 注意:必须申明被解析时间的格式,而且要非常严谨
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 开始解析:String => Date
Date d = sdf.parse(time); // 解析字符串时间成为日期对象。
// (2)16小时10分10s后的时间是多少。
long t = d.getTime();
t += (16*60*60+10*60+10) * 1000;
System.out.println(sdf.format(t)); // 格式化时间毫秒值输出
}
}
Calendar日历类:是抽象类,抽象类不能直接创建对象。
-- public static Calendar getInstance():静态方法,直接返回日历对象。
1.Calendar rightNow = Calendar.getInstance();
通过一个静态方法直接得到一个日历对象。
得到当前系统当前此刻时间对应的日历对象。
2.Calendar日历获取信息的方法:
- public int get(int field):返回给定日历字段的值。
- public void set(int field, int value):将给定的日历字段设置为给定值。
- public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。 时间跨度很大用日历做!!
public class CarlendarDemo01 {
public static void main(String[] args) {
// 通过一个静态方法直接得到一个日历对象。
// 得到当前系统当前此刻时间对应的日历对象。记住代码!
Calendar rightNow = Calendar.getInstance();
System.out.println(rightNow);
// 1.直接得到当前日期对象。
Date d = rightNow.getTime();
System.out.println(d);
// 2.日历对象可以直接获取当前此刻时间毫秒值
long time = rightNow.getTimeInMillis();
System.out.println(time);
// 3.单独获取年
int y = rightNow.get(Calendar.YEAR);
System.out.println(y);
int m = rightNow.get(Calendar.MONTH);
System.out.println(m);
// 获取一年中的第几天
int days = rightNow.get(Calendar.DAY_OF_YEAR);
System.out.println(days);
// public void set(int field, int value):修改日历。
// rightNow.set(Calendar.DAY_OF_YEAR , 100);
// 36天以后是什么时间。
// 让日历一年中的第几天往后翻36天:在原来的天数上往后加
rightNow.add(Calendar.DAY_OF_YEAR , 36);
// rightNow.add(Calendar.HOUR , 2);
// 再获取日历的时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(rightNow.getTime()));
}
}