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天

原文地址:https://www.cnblogs.com/tensory/p/6590771.html