Java中获取日期和时间
1.创建 java.util.Calendar 实例,调用其 get()方法传入不同的参数即可获 得参数所对应的值
import java.util.Calender;
//获取当前日期和时间
public class D3 {public static void main(String[] args) {Calendar c = Calendar.getInstance();System.out.println(c.get(Calendar.YEAR)); //年System.out.printf("%02d%n",c.get(Calendar.MONTH)+1);//月System.out.println(c.get(Calendar.DATE));//日System.out.println(c.get(Calendar.HOUR_OF_DAY));//时System.out.println(c.get(Calendar.MINUTE)); //分System.out.println(c.get(Calendar.SECOND)); //秒System.out.println(c.get(Calendar.MILLISECOND)); //毫秒}
}
2.使用java.util.Date;
Date(): 分配对象并对其进行初始化,以便它表示分配对象的时间,以最接近的毫秒为单位。
Date(long date):分配一个对象并对其进行初始化,以表示自称为"纪元"的标准基准时间(即 1970年 1 月 1 日 00:00:00
GMT)以来的指定毫秒数。
import java.util.Date;
public class D5 {public static void main(String[] args) {//java.util.Date类使用// (1)import 导入// (2)实例化// (3)使用实例的对象的相关操作// 方法 //类Date 对象d(就是实现化的类的实例,一般使用new关键来实例化)Date d = new Date();System.out.println(d);System.out.println(d.getTime()); //1657522408757 long类型的数字,我们这 叫时间戳// 格式化输出System.out.printf("%tF %<tT%n",0L);// 1970-01-01 08:00:00System.out.printf("%tF %<tT%n",1657522408757L);//2022-07-11 14:53:28System.out.printf("%tF %<tT%n",Long.MAX_VALUE);//2022-07-11 14:53:28Date dd = new Date(1657522408757L);//代表年月日时分秒毫秒的日期对象System.out.println(dd.getYear());System.out.println(dd.getYear()+1900);System.out.println(dd.getMonth());//6System.out.println(dd.getMonth()+1);//7 月是正常的System.out.println(dd.getDate());//11 当月的几号System.out.println(dd.getDay());//1 星期几/*返回此日期表示的星期几。 返回值( 0 =星期日, 1 =星期一, 2 =星期二,3 =星期 三, 4 =星期四, 5 =星期五, 6 =星期六)表示包含或以此时间表示的时刻开始的星期几Date对 象,在本地时区中解释。*/}
}
结果
案例
使用java.util.Date 实现计算两个日期之间的天数?
以2001-12-18 出生到现在 2022-8-11 有多少?为例
import java.util.Date;
public class Date2 { public static void main(String[] args) { Date start = new Date(); start.setYear(2001-1900); start.setMonth(12-1); start.setDate(18);Date now = new Date(); long days = (now.getTime()-start.getTime())/1000/60/60/24;System.out.println(days); //格式化输出 System.out.printf("开始日期:%tF 到今天日期,共有%d天。",start,days);}}
结果