日期类
与时间相关的类
1.System类下的currentTimeMillis()
2.Date类:java.util.Date(以及其子类java.sql.Date)
如何创建其实例:其下方法:toString()、getTime()
3.SimpleDateFormat类
4.Calendar类
1.java.lang.System类
system类提供的public static long currentTimeMills()用来返回当前时间与1970年0时0分0秒之间以毫秒为单位的时间差。
2.java.util.Date类
表示特定的瞬间,精确到毫秒
Date():创建对象可以获取本地当前的时间
Date(long date)
getTime():用来返回当前时间与1970年0时0分0秒GMT以来对Date对象表示的毫秒数。
toString():把此Date对象转换为以下形式的String:星期 mon dd hh:mm:ss:zzz yyyy
@Test
public void test1(){
Date d1 = new Date();
System.out.println(d1.toString());//Fri Apr 12 14:02:27 CST 2019
System.out.println(d1.getTime());//1555049142281
java.sql.Date d2 = new java.sql.Date(214141143);
System.out.println(d2);//1970-01-03
Date d3 = new Date(1555049142281L);
System.out.println(d3);
}
3.SimpleDateFormat类易于国际化
格式化:日期----->文本使用SimpleDateFormat()方法
解析:文本------>日期
格式化:
//方式一:
SimpleDateFormat sdf = new SimpleDateFormat();
String date = sdf.format(new Date());
System.out.println(date);//19-4-12 下午2:13
//方式二:
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date1 = sdf1.format(new Date());
System.out.println(date);//19-4-12 下午2:19
注:
解析需要看创建SimpleDateFormat类对象的构造器,参数的格式决定了写入parse()参数的形式
解析:
Date date2 = sdf.parse("19-4-12 下午2:13");
System.out.println(date2);
练习:
三天打鱼两天晒网
@Test
public void test2() throws ParseException{
String str1 = "1999-9-21";
String str2 ="1999-9-19";
int cday=getDays(str1, str2);
if(cday%5==0||cday%5==4){
System.out.println("晒网");
}else{
System.out.println("打鱼");
}
}
public int getDays(String date1,String date2) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
Date d1 = sdf.parse(date1);
Date d2 = sdf.parse(date2);
long ltime = d1.getTime()-d2.getTime();
return (int)ltime/1000/3600/24+1;
}
4.java.lang.Calendar(日历)类
Calendar是一个抽象基类,主要用于完成日期字段之间相互操作功能
<1>获取Calendar实例的方法
》使用Calendar.getInstance()方法
》调用他的子类GregorianCalendar的构造器。
<2>通过get(int field)方法来取得想要的时间信息
》public void set(int field,int value)
》public void add(int field,int amount)
》public final Date getTime()
》public final void setTime(Date date)
@Test
public void test3(){
Calendar c = Calendar.getInstance();
int i = c.get(Calendar.DAY_OF_MONTH);//当月的第几天
System.out.println(i);//12
c.add(Calendar.DAY_OF_MONTH, 2);
int j = c.get(Calendar.DAY_OF_MONTH);
System.out.println(j);//14
c.set(Calendar.DAY_OF_MONTH, 24);
Date d = c.getTime();
System.out.println(d);//Wed Apr 24 20:55:40 CST 2019
}