一、Date 类
1、概述
- Date 类表示特定的瞬间,精确到毫秒
- 1970年1月1日0时0分0秒距离此事件的毫秒数(时间戳)
- 得到时间戳的方法
getTime()
- 设置时间戳的方法
setTime()
2、构造方法
public Date()
//根据当前的默认毫秒值创建日期对象public Date(long date)
//根据给定的毫秒值创建日期对象
package riqi; import java.util.Date; public class DateDemo { public static void main(String[] args){ Date d1 = new Date(); System.out.println(d1);//返回当前时间 System.out.println(d1.getTime());//返回时间戳 long time = System.currentTimeMillis();//返回当前的计算机时间距1970年1月1日的毫秒数 System.out.println(time); long t = 1000 * 60 * 60;//一小时 Date d2 = new Date(t); System.out.println(d2);//返回:Thu Jan 01 09:00:00 CST 1970 } }
3、成员方法
public long getTime()
public void setTime(long time)
二、DateFormat 类
1、概述
- DateFormat 是日期、时间 格式化子类的抽象类
- 是抽象类,其子类 SimpleDateFormat
2、SimpleDateFormat 的构造方法
public SimpleDateFormat()
public SimpleDateFormat(String pattern)
package riqi; import java.text.SimpleDateFormat; import java.util.Date; public class DateDemo { public static void main(String[] args){ Date d1 = new Date();//创建对象 long time1 = d1.getTime();//获取时间戳 System.out.println(d1); System.out.println(time1); System.out.println("---------------------------"); //设置时间 d1.setTime(0); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); System.out.println(sdf.format(d1)); } }
3、DateFormat 的成员方法
public final String format(Date date)
public Date parse(String source)
package riqi; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateDemo { public static void main(String[] args) throws ParseException { //Date->String Date d1 = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 SSS毫秒"); String s = sdf.format(d1); System.out.println(s); System.out.println("---------------------------"); //String->Date String str = "2018年8月8日 12时12分12秒"; SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); Date d2 = sdf2.parse(str); System.out.println(d2); } }
4、案例
算一下你来这个世界多少天
package riqi;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DateDemo {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的出生年月日");
String s = sc.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date birthday = sdf.parse(s);
long cu = System.currentTimeMillis();//获取系统时间
long l = cu - birthday.getTime();//你度过的毫秒数
long d = l / (1000 * 60 * 60 * 24);
System.out.println("您度过了"+d+"天");
}
}
三、Calendar 类
1、概述
- Calendar: 原意:日历、日程表
- Calendar 类是抽象类,为特定瞬间与一组日历字段之间的转换提供了一写方法
package riqi; import java.util.Calendar; public class CanlendarDemo { public static void main(String[] args){ Calendar now = Calendar.getInstance();//子类对象 int year = now.get(Calendar.YEAR);//获取年 int month = now.get(Calendar.MONTH);//获取月 int day = now.get(Calendar.DATE);//获取日 System.out.println(year+"年"+(month + 1)+"月"+day+"日"); } }
2、成员方法
public static Calendar getInstance()
public int get(int field)
public void add(int field,int amount)
public final void set(int year,int month,int date)
package riqi; import java.util.Calendar; public class CanlendarDemo { public static void main(String[] args){ Calendar c = Calendar.getInstance();//默认是当前时间 // 获取年 int year = c.get(Calendar.YEAR); // 获取月 int month = c.get(Calendar.MONTH); // 获取日 int date = c.get(Calendar.DATE); System.out.println(year + "年" + (month + 1) + "月" + date + "日"); // 5年后的10天前 c.add(Calendar.YEAR, 5); c.add(Calendar.DATE, -10); // 获取年 year = c.get(Calendar.YEAR); // 获取月 month = c.get(Calendar.MONTH); // 获取日 date = c.get(Calendar.DATE); System.out.println(year + "年" + (month + 1) + "月" + date + "日"); System.out.println("--------------"); c.set(2011, 11, 11); // 获取年 year = c.get(Calendar.YEAR); // 获取月 month = c.get(Calendar.MONTH); // 获取日 date = c.get(Calendar.DATE); System.out.println(year + "年" + (month + 1) + "月" + date + "日"); } }
3、案例
获取任意一年的二月有多少天 package riqi; import java.util.Calendar; import java.util.Scanner; public class CanlendarDemo { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入年份:"); int year = sc.nextInt(); Calendar c = Calendar.getInstance();//设置对象的年月日 c.set(year,2,1); c.add(Calendar.DATE,-1); System.out.println(c.get(Calendar.DATE)); } }