Java常用类—时间类,jdk8之前
jdk8之前的日期时间API
一.System.currentTimeMillis()
返回当前时间与1970年1月1日的毫秒级时间戳
二.java.util.Date类
1.两个构造器的使用
new Date()//空参,创建一个对应当前时间的Date对象
new Date(long milli...)//创建指定毫秒数的Date对象
2.两个方法的使用
toString():显示当前的年、月、日、时、分、秒
getTime():获取当前Date对象对应的毫秒数(时间戳)
java.sql.Date对应数据库中的日期类型的变量,继承于java.util.Date
表达形式:年-月-日,eg.1997-1-1
实例化:
java.sql.Date date=new java.sql.Date();//使用带包名路径的类名,区别两种不同的Date
java.util.Date和Java.sql.Date相互转化:
注意对象的本质类是Java.sql.Date还是java.util.Date
父类的多态引用和类型向下强转可以理解
如果是本质类型转化,可以使用getTime()方法来获得时间戳并通过构造器初始化
三.SimpleDateFormat的使用——对Date类的格式化和解析
- 两个操作:
1.格式化:日期——>字符串
2.解析:格式化的逆过程,字符串——>日期 - SimpleDateFormat的实例化
public void test1() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat();
//格式化:日期--->字符串
Date date =new Date();
System.out.println(date);
String dateString = sdf.format(date);
System.out.println(dateString);
//解析:格式化的逆过程,字符串--->日期
String dateString2 = "22-5-7 下午12:04";
Date date1 = sdf.parse(dateString2);
System.out.println(date1);
//******************灵活修改格式**********************
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");
//格式化
System.out.println(sdf2.format(date));
//解析:要求字符串必须符合格式,否则报错
Date date2= sdf2.parse(sdf2.format(date));
System.out.println(date2);
}
Calendar日历类的使用
//1.实例化
//方式一:创建其子类(GregorianCalendar)的对象
//方式二:调用其静态方法getInstance()
Calendar calendar = Calendar.getInstance();
//System.out.println(calendar.getClass());
//常用方法
//get()
int days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
//set()
calendar.set(Calendar.DAY_OF_MONTH,22);
days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
//add()
calendar.add(Calendar.DAY_OF_MONTH,-3);
days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
//getTime():日历类--->Date
Date date = calendar.getTime();
System.out.println(date);
//setTime():Date--->日历类
Date date1 = new Date();
calendar.setTime(date1);
days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);