- java 小知识点
- Objects.equals()方法容忍空指针
- 日期相关类
- Date方法
- Date的toLocaleString()方法
- DateFormat类(日期时间格式化)
- 利用毫秒求两个日期的差值(getTime()方法)
- Calendar类
equals方法 可以比较String(默认重写)和对象(需要重写)。重写前,比较两个对象的地址值,重写后比较的是两个对象的属性值。
Objects类是对象的工具类。
public static void main(String[] args) {
//Objects.equals()方法容忍空指针
String s1 = null;
String s2 = "abc";
System.out.println(s1.equals(s2));//会报空指针
System.out.println(s2.equals(s1));//会报空指针;//.queals()括号中为null的时候也不会报空指针
System.out.println(Objects.equals(s1,s2));//不会报空指针,作用相同
}
日期相关类
hh:mm:ss:12小时制
HH:mm:ss:24小时制
public static void main(String[] args) {
long millis = System.currentTimeMillis();//时间原点到现在的毫秒数
SimpleDateFormat format12 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//转换时间格式为12小时制
SimpleDateFormat format24 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//转换时间格式为24小时制
Date dateMillis = new Date(millis);
System.out.println("当前毫秒数" + millis);
System.out.println("当前年月日时分秒(12小时制):" +format12.format(dateMillis));
System.out.println("当前年月日时分秒(24小时制):" +format24.format(dateMillis));
}
输出为
当前毫秒数1635165778512 当前年月日时分秒(12小时制):2021-10-25 08:42:58 当前年月日时分秒(24小时制):2021-10-25 20:42:58Date方法
Date有参构造方法:转换毫秒为年月日时分秒
Date无参构造方法:当前系统时间
public static void main(String[] args) {
//Date 会自动转换当前所在时区
Date date = new Date();
Date d1 = new Date(0l);
System.out.println("无参数-->当前系统时间:"+date);
System.out.println("0毫秒对应的年月日时分秒:"+d1);
}
输出为:
无参数-->当前系统时间:Mon Oct 25 21:06:19 CST 2021 0毫秒对应的年月日时分秒:Thu Jan 01 08:00:00 CST 1970Date的toLocaleString()方法
public static void main(String[] args) throws ParseException {
Date date = new Date();
System.out.println("date没转换:"+date);
System.out.println("date转换了:"+date.toLocaleString());
}
输出为:
date没转换:Tue Oct 26 20:25:56 CST 2021 date转换了:2021-10-26 20:25:56DateFormat类(日期时间格式化)
DateFormat, MessageFormat(格式化字符串), NumberFormat (格式化字符串)
DateFormat类是抽象类,无法直接使用,我们使用其子类SimpleDateFormat。
1.format方法 -->字符串
public static void main(String[] args) {
//format方法:Date日期格式化为字符串
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String str = simpleDateFormat.format(date);
System.out.println("Date未格式化时间:"+date);
System.out.println("SimpleDateFormat格式化时间:"+str);
}
输出为
Date未格式化时间:Mon Oct 25 21:28:01 CST 2021 SimpleDateFormat格式化时间:2021-10-25 21:28:01
2.parse方法 -->Date日期
public static void main(String[] args) throws ParseException {
//parse方法:将符合模式的字符串解析成Date日期
//ParseException解析异常,字符串和构造方法中的模式不一样,就会抛出此异常
//解决throws或try catch
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//Date date = simpleDateFormat.parse("1989年7月15日 21时35分01秒");//会报.ParseException
Date date = simpleDateFormat.parse("1989-7-15 21:35:01");
System.out.println(date);
}
输出为
Sat Jul 15 21:35:01 CDT 1989利用毫秒求两个日期的差值(getTime()方法)
public static long diffDays(Date d1, Date d2){
long time1 = d1.getTime();
long time2 = d2.getTime();
long days = (time1-time2)/1000/60/60/24;
return days;
}
public static long diffDays(String d1, String d2) throws ParseException {
SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = simpleDate.parse(d1);
Date date2 = simpleDate.parse(d2);
long time1 = date1.getTime();
long time2 = date2.getTime();
long days = (time1 - time2)/1000/60/60/24;
return days;
}
Calendar类
//Calendar类的四种常用方法:get/set/add/getTime
public static void main(String[] args) throws ParseException {
Calendar c = Calendar.getInstance();//静态方法getInstance(),返回了Calendar类的子类对象
int year = c.get(Calendar.YEAR);//get年
c.set(Calendar.YEAR,1989);//set年
int newYear = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);//get月(0-11月)
int date = c.get(Calendar.DATE);//get日
int day = c.get(Calendar.DAY_OF_MONTH);//get月中几号
// c.add(Calendar.YEAR,2);//add增加
// c.add(Calendar.YEAR,-2);//add减少
Date date1 = c.getTime();//日期 输出为Thu Oct 26 20:11:17 CST 1989
System.out.println(date1);
System.out.println("Calendar日历--年"+year);
System.out.println("Calendar日历--set设置后的年"+newYear);
System.out.println("Calendar日历--月"+(month+1));
System.out.println("Calendar日历--日"+date);
System.out.println("Calendar日历--月中几号"+day);
}
注意:
Calendar月份是0到11,如果set给它12的是输出是0
public static void main(String[] args) throws ParseException {
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH,12);
System.out.println(c.get(Calendar.MONTH));
}



