table .header th:nth-child(0n+2) { width: 180px }
table .header th:nth-child(0n+3) { width: 300px }
table .header th:nth-child(0n+4) { width: 180px }

一、当前时间的获取与格式的转换

  Date类 Calendar类 其他
简介 Date类中使用最多的是获取系统当前的日期和时间。 可看作是Date类的一个增强版,Calendar类允许以毫秒为单位的时间转换成年、月、日、时、分、秒。可以把Calendar类当作是万年历,默认显示的是当前时间,当然也可以查看其他时间  
代码 Date date = new Date();
System.out.println(date);
Calendar cal=Calendar.getInstance();
System.out.println(cal);
long date=System.currentTimeMillis();
System.out.println(date);
输出 Mon Jul 01 11:33:23 CST 2019
(格林威治时间格式)
java.util.GregorianCalendar[time=1561953350254,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=”Asia/Shanghai”,offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=6…… 1561952378083
(表示当前时间的毫秒值)
格式转换 SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
String nowDate = sdf.format(date);

int year=cal.get(Calendar.YEAR);//年
int month=cal.get(Calendar.MONTH)+1;//月 默认是从0开始 即1月获取到的是0
int day=cal.get(Calendar.DAY_OF_MONTH);//日,即一个月中的第几天
int hour=cal.get(Calendar.HOUR_OF_DAY);//小时
int minute=cal.get(Calendar.MINUTE);//分
int second=cal.get(Calendar.SECOND);//秒
String dateStr =year+”-“+month+”-“+day+” “+hour+”:”+minute+”:”+second;
Date dateStr = new Date(date);
格式转化后输出 2019-07-01 11:53:17 2019-7-1 11:56:19 Mon Jul 01 11:45:35 CST 2019

二、获取特定时间

1. 获取指定时间

方法一:

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	Date date = null ;
	try {
		date = sdf.parse("2019-7-1 14:47:25");
	} catch (ParseException e) {
		e.printStackTrace();
	}
	System.out.println(dateStr);

输出:
 Mon Jul 01 14:47:25 CST 2019
方法二:

	Date date = new Date(119,6,1);// 表示2019年7月1日,不是很常用
	System.out.println(date);

输出:
 Mon Jul 01 00:00:00 CST 2019

方法三:

	Calendar cal = Calendar.getInstance();
	cal.set(Calendar.HOUR_OF_DAY, 14);//控制时
	cal.set(Calendar.MINUTE, 12);//控制分
	cal.set(Calendar.SECOND, 13);//控制秒
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	String dateStr = sdf.format(cal.getTime());
	System.out.println(dateStr);

输出:
 2019-07-01 14:12:13

2.时间变化

(1)获取前一天时间

	Calendar cal = Calendar.getInstance();
	cal.add(Calendar.DATE, -1);
	Date d = cal.getTime();
	SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
	String yesterday = sp.format(d);// 获取昨天日期
	System.out.println(yesterday);

或者

	Date d = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
	SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
	String yesterday = sp.format(d);// 获取昨天日期
	System.out.println(yesterday);

两个输出都是:
 2019-06-30
(2)获取前一个星期的时间

	Calendar cal = Calendar.getInstance();
	cal.add(Calendar.WEEK_OF_MONTH, -1);
	Date d = cal.getTime();
	SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
	String date = sp.format(d);// 获取昨天日期
	System.out.println(date);

输出:
 2019-06-24
(3)获取下一个月的时间

	Calendar cal = Calendar.getInstance();
	cal.add(Calendar.MONTH, 1);
	Date d = cal.getTime();
	SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
	String date = sp.format(d);// 获取昨天日期
	System.out.println(date);

输出:
 2019-08-01

三、时间的计算

1.计算执行代码的时间差

	long startTime = System.currentTimeMillis();
	doSomething();
	long endTime=System.currentTimeMillis();
	long time= endTime-startTime;
	System.out.println("程序运行时间:"+time+"ms");

输出:
 程序运行时间:817ms

2.计算两个时间的天数

	Date startDate=new Date(119,5,20);
	Date endDate=new Date(119,6,1);
	long nd=1000*24*60*60;
	long diff=endDate.getTime()-startDate.getTime();
	long countDays=diff/nd;
	System.out.println("两个时间相差:"+countDays+"天");

输出:
 两个时间相差:11天

3.时间的遍历

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	try {
		Date d1 = sdf.parse("2019-5-07");//起始日期
		Date d2 = sdf.parse("2019-07-1");//结束日期
		Calendar cal =Calendar.getInstance();
		cal.setTime(d1);
		Date tmp=d1;
		//打印2019年5月7日到2019年7月1日的日期
		while(tmp.getTime()<=d2.getTime()) {
			System.out.println(sdf.format(tmp));
			//天数加上1
			cal.add(Calendar.DAY_OF_MONTH, 1);
			tmp=cal.getTime();
		}
	} catch (ParseException e) {
		e.printStackTrace();
	}

版权声明:本文为GodSince原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/GodSince/p/11114610.html