文章目录
java中日期类
Date类
概述
使用Date类代表当前系统时间,它的每一个实例都表示一个确切的时间点,内部使用一个long类,记录毫秒值,该毫秒值表示1970年1月1日00:00:00.000 GMT之后的毫秒数。但是由于Date设计存在缺陷,所以它的大部分方法都被设置为“过时的”,不建议使用。
Date类的常用方法
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
//创建了Date类的实例对象,表示获取了当前系统时间
Date now = new Date();
Date now1 = new Date();
//after() 测试此日期是否在指定日期之后
System.out.println(now1.after(now));
//before() 测试此日期是否在指定日期之前
System.out.println(now1.before(now));
//compareTo() 比较两个日期,若相等则返回0,小于返回负数,大于返回正数
System.out.println(now.compareTo(now1));
//getTime() 返回当前系统时间,精确到毫秒,自1970年1月1日0时0分0秒至今
System.out.println(now.getTime());//1605809808070
//hashCode() 根据对象内存地址计算其哈希值
System.out.println(now.hashCode());//-507898765
//getDate() 返回今天是本月的第几天,方法名上有横线代表已弃用
System.out.println(now.getDate());//20
//getDay() 返回今天是本周的第几天
System.out.println(now.getDay());//5
//getMonth() 返回本月是第几月,从0开始
System.out.println(now.getMonth()+1);//11
//getYear() 返回今年是第几年,从1900年开始
System.out.println(now.getYear()+1900);//2020
}
}
Calendar类
概述
Calendar的翻译就是日历,Calendar类是一个抽象类,在实际使用过程中实现特定的子类,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
语法格式:
Calendar c1 = Calendar.getInstance();
c1.get(Calendar);
Calendar类的常用方法
import java.util.Calendar;
public class CalendarDemo {
public static void main(String[] args) {
Calendar date = Calendar.getInstance();
//获取时间,使用默认时区和环境语言获得一个日历,月份下标从0开始
System.out.println(date.getTime());
System.out.println("年:"+date.get(Calendar.YEAR));
System.out.println("月:"+(date.get(Calendar.MONTH))+1);
System.out.println("日:"+date.get(Calendar.DAY_OF_MONTH));
System.out.println("时:"+date.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+date.get(Calendar.MINUTE));
System.out.println("秒:"+date.get(Calendar.SECOND));
//设置时间,可以一次性设置,也可以单次设置
//set(int year, int month, int date, int hourOfDay, int minute, int second)
date.set(2020,1,1,1,1,1);
System.out.println(date.getTime());
//时间计算 add() 两个参数,第一个是要计算的时间点(年月日时分秒等),第二个是要加的时间数
date.add(Calendar.MONTH,1);
System.out.println(date);//MONTH=2
}
}
SimpleDateFormat类
概述
SimpleDateFormat:日期格式化类。
构造方法:SimpleDateFormat(格式);//yyyy-MM-dd
自定义日期格式必须要遵守JDK的规定:
SimpleDateFormat类的使用
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
//日期转字符串
Date now = new Date();
SimpleDateFormat sdf0 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String str0 = sdf0.format(now);
System.out.println(str0);//2020年11月20日 03时06分14秒
//字符串转日期 格式一定要一致,并且这里会抛出一个异常,害怕你格式写错了throws ParseException
String str1 = "2020-11-20";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf1.parse(str1);
System.out.println(date);//Fri Nov 20 00:00:00 CST 2020
}
}