Date和Calendar的区别以及对他们简单的使用以及jdk1.8时间新特性LocalDateTime


  1. cal1.add(Calendar.DAY_OF_MONTH,1);
  2. cal1.add(Calendar.DAY_OF_YEAR,1);
  3. cal1.add(Calendar.DATE,1);

就单纯的add操作结果都一样,因为都是将日期+1
就没有区别说是在月的日期中加1还是年的日期中加1
但是Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1
将日期加1,这通过cal1.add(Calendar.DATE,1)就可以实现
DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天
Calendar.DAY_OF_YEAR的主要作用是cal.get(DAY_OF_YEAR),用来获得这一天在是这个年的第多少天。
同样,还有DAY_OF_WEEK,用来获得当前日期是一周的第几天

 (。♥ᴗ♥。) Ψ( ̄∀ ̄)Ψhi✿(。◕ᴗ◕。)✿ (✖人✖)(▼ヘ▼#)

1、什么是Date和Calendar

a、Date类表示的是特定的,瞬间的,它能精确毫秒。

b、Calendar它是一种抽象类,相比Date它在操作日历的时候提供了一些方法来操作日历字段

2、Date和Calendar常见的使用方式

a、Date

  1. Date date = new Date();
  2. System.out.println("毫秒:"+date.getTime());//输入毫秒
  3.  
  4. //时间转字符串
  5. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  6. String time = sdf.format(date);
  7. System.out.println("时间转字符串:"+time);
  8.  
  9. //利用字符串来转时间格式(记得抛出异常)
  10. String time02 = "2018-09-05";
  11. SimpleDateFormat sdf2 = new SimpleDateFormat ("yyyy-MM-dd");
  12. Date date2 = sdf2.parse(time02);
  13. System.out.println("字符串转时间格式:"+date2);

b、Calendar

  1. // 使用默认时区和语言环境获得一个日历
  2. Calendar cal = Calendar.getInstance();
  3. // 赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1
  4. System.out.println("年:" + cal.get(Calendar.YEAR));
  5. System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));
  6. System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
  7. System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));
  8. System.out.println("分:" + cal.get(Calendar.MINUTE));
  9. System.out.println("秒:" + cal.get(Calendar.SECOND));
  10.  
  11. //手动设置某个日期
  12. Calendar cal02 = Calendar.getInstance();
  13. //注意,设置时间的时候月份的下标是在0开始的
  14. //设置时间不一定要这6个参数3个参数也是可以的
  15. cal02.set(2018,9,1,12,0,0);//二零一八年十月一号十二点
  16. System.out.println(cal02.getTime());
  17.  

c、Date和Calendar互相转换

  1. 1、Calendar转Date
  2. Calendar cal = Calendar.getInstance();
  3. Date date = cal.getTime();
  1. Calendar cal = Calendar.getInstance();
  2. Date date = cal.getTime();
  3. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  4. String s = simpleDateFormat.format(date);
  5. System.out.println("时间为===="+s);

2、Date转Calendar

  1. Date date2 = new Date();
  2. Calendar cal2 = Calendar.getInstance();
  3. cal2.setTime( date );
  1. Date date2 = new Date();
  2. Calendar cal2 = Calendar.getInstance();
  3. cal2.setTime(date );
  4. System.out.println(cal2.get(Calendar.YEAR) +"-"+(cal2.get(Calendar.MONTH)+1)+"-"+cal2.get(Calendar.DATE));

 

----------------------------------------------------------------------------------------------------------------------

注意:

在大多数情况下,date要实现的功能都可以通过calendar来实现的(少数情况除外),在这上面只是列出的常用方法,感兴趣的程序猿可以通过这些方法来简单的去使用Calendar和Date,在使用的过程当中一点要注意代码的中的注释哦。

3、Date和Calendar有什么区别

区别:比较哟明显的区别是Date是日期,Calendar是日历,Date是类,Calendar是抽象类。当然,你也可以觉得Calendar是Date的加强版

4、在开发过程当中,使用Date和Calendar哪种的效率更高

这个就要看项目的具体需求了,不过在当前的开发环境中,Calendar使用的情况是比Date更多,毕竟它提供的方法大大的方便了我们程序猿完成跟时间有关的功能,但是这并不意味这Date就会淘汰,毕竟他们两个还是有区别的,笔者只是认为Calendar用起来更好。

原文地址:https://www.cnblogs.com/yangsanluo/p/14325189.html