关于时间
其实关于时间各种,一直以来都是懵懵的。用的时候再去查,今天决定好好的总结一下,不能总是迷迷糊糊的了~
记录的方式可能有点白痴,哈哈哈~
1.Date
Date now = new Date();
返回形式是 now: Mon Apr 20 14:00:24 CST 2020
带参数的构造方法Date(int year, int month, int day)
Date d1 = new Date(2014-1900, 6-1, 12);
(注意参数的设置 : 年份的参数需要减去1900,月份需要减去1)
获得年份 getYear() + 1900
获得月份 getMonth() + 1
获得日期 getDate()
获得小时 getHours()
获得分钟 getMinutes()
获得秒 getSeconds()
获得星期 getDay() 0代表星期日、1代表星期1。。。
2.SimpleDateFormat
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
3.Calendar
Calendar c = Calendar.getInstance();
c.getTime() 返回 Mon Apr 20 15:21:32 CST 2020
与2结合使用
f.format(c.getTime()) 返回 2020-04-20
f.format(c.getTime())+" 08:00:00" 返回 2020-04-17 08:00:00
f.format(c.getTime())+" 23:59:59" 返回 2020-04-17 23:59:59
Calendar.DATE是个常量,就是个固定值,永远不变。
cal.get(Calendar.DATE)是个方法,获取cal中的属性,传入常量就是告诉cal,获取哪个DATE属性。
4.ExtUtil util=new ExtUtil();
ExtUtil util=new ExtUtil();
String first=util.getDaytime(); 返回 2020-04-20
小问题:获取当前时间的上周一和上周五
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); //设置格式
Calendar c = Calendar.getInstance(); //创建一个代表系统当前日期的Calendar对象
int dayWeek = c.get(Calendar.DAY_OF_WEEK); // 获得当前日期是一个星期的第几天
if (1 == dayWeek) {
c.add(Calendar.DAY_OF_MONTH, -1); //因为默认周日为每周第一天,是新的一周。
}
c.setFirstDayOfWeek(Calendar.MONDAY);// Calendar默认情况下sunday为每周的第一天,修改为第一天是星期一
int day = c.get(Calendar.DAY_OF_WEEK); // 获得当前日期是一个星期的第几天
c.add(Calendar.DATE, c.getFirstDayOfWeek() - day);//给当前日期减去星期几与一个星期第一天的差值
c.add(Calendar.DATE, -7);、
String last7 = f.format(c.getTime())+" 07:00:00"; //XXXX-XX-XX 07:00:00
c.add(Calendar.DATE, +4);
String last8=f.format(c.getTime())+" 08:00:00"; //XXXX-XX-XX 08:00:00
5.开始时间为3天前,结束时间为今天
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");//可以方便地修改日期格式
Calendar c = Calendar.getInstance();
c.getTime();
c.add(Calendar.DATE,-3);
Calendar d = Calendar.getInstance();
d.getTime();
String bs = dateFormat1.format(c.getTime()) + " 00:00:00";
String be = dateFormat1.format(d.getTime()) + " 23:59:59";