Java关于时间日期的Date类和Calendar类概述
1. System.currentTimeMillis()方法
可以获取当前时间距离1970年01月01日00时00分00秒的秒数,如果程序运行在北京时区,则获取的数据是当前时间距离1970年01月01日08时00分00秒的秒数.
例如
System.out.println(System.currentTimeMillis());
2. Date类
利用Date类获取当前日期时间的方法如下
//打印当前时间 //方法一 System.out.println(new Date()); //方法二 System.out.println(new Date(System.currentTimeMillis()));
可以利用字符串的split()方法将上述结果分割,获得其中某个项的信息
Date date = new Date(); String []word = date.toString().split(" ");//转成字符串并且分割 for(String w:word) System.out.println(w);
3. Calendar类
①获取Calendar对象
利用Calendar的静态方法getInstance()方法获取Calendar对象.
②set方法
setTime(Date date)将日历翻到date所在的时间.
set(int year,int month,int day)将日历翻到yearmonth day对应的年月日.
③get方法
get(常量)根据常量为YEAR,MONTH_OF_YEAR等值获取当前Calendar对象对应的年或月等单个信息.
例如
import java.util.Calendar; import java.util.Date; import static java.util.Calendar.*; public class AsMain { public static void main(String args[]){ Calendar calendar = Calendar.getInstance();//获取Calendar对象 //1.获取单个信息并分别打印 calendar.setTime(new Date(1000000000));//设置为当前日期 int year = calendar.get(YEAR);//获取[年] int month = calendar.get(MONTH)+1;//注意:月份对应的数字比实际月份少 1 int day = calendar.get(DAY_OF_MONTH); int weekday = calendar.get(DAY_OF_WEEK); int hour = calendar.get(HOUR_OF_DAY); int minute = calendar.get(MINUTE); int second = calendar.get(SECOND);//获取[秒0] System.out.println(year+"年"+month+"月"+day+"日"+ Weekday(weekday)+hour+"时"+minute+"分"+second+"秒"); //2.计算日期1和日期2的间隔天数 year = 1987; month = 6; day = 5; calendar.set(year,month,day);//设定日期1 long totalsecond_1 = calendar.getTimeInMillis();//获取日期1距离元年的秒数 System.out.print(year+"年"+month+"月"+"日与"); year = 1987; month = 7; day = 9; calendar.set(year,month,day);//设置日期2 long totalsecond_2 = calendar.getTimeInMillis();//获取日期2距离元年的秒数 long days = (totalsecond_2 - totalsecond_1) / (24*3600*1000);//计算秒数之差,并换算成天数 System.out.println(year+"年"+month+"月"+"日相隔"+days+"天"); } public static String Weekday(int weekday){ switch(weekday){ case 1:return "星期日"; case 2:return "星期一"; case 3:return "星期二"; case 4:return "星期三"; case 5:return "星期四"; case 6:return "星期五"; case 7:return "星期六"; default:return ""; } } }
运行结果如下
1970年1月12日星期一21时46分40秒
1987年6月日与1987年7月日相隔35天