黑马程序员技术交流社区
标题:
【南京校区】时间日期相关
[打印本页]
作者:
大蓝鲸Java
时间:
2019-7-19 12:00
标题:
【南京校区】时间日期相关
1.Date类
总结:
1.Date类使用的是util包下的。
2.Date d = new Date();//把当前时间封装成一个Date对象
3.Date d = new Date(1000);//把从时间原点开始过了1000毫秒的那个时间点封装成一个Date对象
4.Date类跟Student类是一样的,都是一个javabean类。
Student是用来描述学生的
Date就是用来描述时间的。
Student类:这个类表示的就是学生类。
class Student{
private String name;
private int age;
public Student(){}
public Student(String name,int age){
this.name = name;
this.age = age;
}
get ... set方法
...
toString
}
Date 类:这个类表示时间。
用来描述时间的一个javabean类。
class Date{
long fastTime;
public Date(){
this(System.currentTimeMillis());
}
public Date(long date){
fastTime = date;
}
get...set...方法
}
2.Date类常用方法
getTime:获取当前Date对象的毫秒值。
setTime:修改当前Date对象的毫秒值。
Date d = new Date();
System.out.println(d);//Wed Jun 12 15:24:40 CST 2019
//以后你在公司写的代码,你能保证都是给像我们这么牛逼的人看的吗?
//我们写的时间格式得符合我天朝大国的阅读习惯
//2019年6月12日 15:26:00
//2019/6/12 15:26:00
//2019-6-12 15-26-00
//我们想要让时间按照我们自己想的格式进行展示。
//Date类就搞不定,就得使用到下面学习的SimpleDateFormat
3.SimpleDateFormat
1.将日期按照我们自己定义的格式进行展示
目的:方便用户看。
2.将已经存在的字符串类型的日期,按照执行的格式进行解析。
目的:方便时间的计算。
String start = "2019年6月12日 15:59:13"
String end = "2019年6月18日 00:00:00";
//请计算,距离剁手还有多久?
1,先把start和end转成Date对象
2,再getTime获取到两个时间的毫秒值
3,将两个毫秒值相减,那么就可以得到时间了。
4,日期工具类
好处:
以后我们有类似操作时,就不需要再写了,直接调用我们自己写的工具类就好了。
作用:
就是帮助我们简化代码的。
步骤:
1、创建一个专门放工具的包。命名 xxx.xxx.utils
2、类名: A + Util
//比如:时间的工具类: DateUtil
//比如:集合的工具类: ListUtil
3、私有化构造方法
//因为是工具类,不想让外界创建对象。
4、所有的方法都写成静态的。
需要记住:
yyyy年MM月dd日 HH:mm:ss
5,Calendar 日历类
Date SimpleDateFormat Calendar 三者的区别。
Date:用来描述时间的javabean类
这个类的对象就表示某一个时间点。
SimpleDateFormat:格式化和解析时间。
如果我们直接打印Date的对象,不符合我们的阅读习惯。所以我们要格式化。
如果我们要对某一个时间的毫秒值进行计算,需要进行解析。
Calendar:日历类
就是把某一个时间点中,对应的年数据,月数据,日数据,星期数据,秒数据,一年中的第几天....
都封装到一个对象中,这个对象就是Calendar日历对象。
应用:
Date 不会单独使用。
Date + SimpleDateFormat :当我们要进行日期格式化或者解析
Date + Calendar : 当我们要对某一个字段进行计算或者要获取单独的字段值时。
案例:
我要把现在的时间往后推移三天。
也是对单个的字段进行操作,所以用Calendar会更简单一些。
6.常用方法
获取日历字段方法:get(int filed)
偏移:add(int filed,int count)//当第二个参数为正数,往后加
//当第二个参数为负数,往前减
设置日历字段方法:set(int year,int month,int date)
//可以设置:年,月,日
//可以设置:针对于某一个单独的字段进行设置
//setTime:可以将Date对象设置进来。
扩散思维:
1.
我要求键盘录入的一个时间是一年中的第几天?
2019年6月12日 是一年中的第几天。
2.键盘录入一个年份,请说明这一年是闰年还是平年?
两种方式做。
1.判断二月份最后一天是28还是29?
2.判断一年一共有365还是366?
3.秒杀时间:
"2019年6月18日 12:00:00"开始
"2019年6月18日 12:05:00"结束
现在有一小伙A,下单并付款了,时间为:"2019年6月18日 12:03:00"
现在有一小伙B,下单并付款了,时间为:"2019年6月18日 12:05:10"
请使用代码进行解析,判断A和B小伙谁参加上了秒杀活动。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2