java官方推荐代替Date的Calendar究竟是个什么?
2020-06-06 05:37
537 查看
Calendar,java中一个强大的日期工具,java官方都推荐使用Calendar来代替Date的使用,使用它可以让你更快的知道"1997年9月19日"是周几,能让你知道"2005年8月14日"是8月的第几周。
1.自定义时间,Date转Calendar
Calendar calendar = Calendar.getInstance(); // 指定年、月、日、时、分、秒,月份是从0开始的所以要减1 calendar.set(1997, 05 - 1, 17, 17, 20, 55); System.out.println("自定义时间=>" + calendar.getTime()); // date转换为Calendar Date date = new Date(); calendar.setTime(date); System.out.println("Date转Calendar=>" + calendar.getTime());
运行结果
2.获取当前年月日,时分秒及星期
Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR);//年 int month = calendar.get(Calendar.MONTH) + 1;//月 int day = calendar.get(Calendar.DAY_OF_MONTH);//日 int hour = calendar.get(Calendar.HOUR_OF_DAY);//时 int minute = calendar.get(Calendar.MINUTE);//分 int seconds = calendar.get(Calendar.SECOND);//秒 // 每周的第一天是周日 int week = calendar.get(calendar.DAY_OF_WEEK);//星期 System.out.println(year+"-"+month+"-"+day+" "+hour+":"+minute+":"+seconds+" "+week);
运行结果
3.加减
Calendar calendar = Calendar.getInstance(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); calendar.add(Calendar.YEAR,1); System.out.println("年+1=>"+simpleDateFormat.format(calendar.getTime())); calendar.add(Calendar.YEAR,-2); System.out.println("年-2=>"+simpleDateFormat.format(calendar.getTime()));
运行结果:
4.两个日期相差天数
Calendar calendar = Calendar.getInstance(); calendar.set(2020,5-1,17); Calendar calendar1 = Calendar.getInstance(); calendar1.set(2019,5-1,17); System.out.println("相隔了"+(calendar.getTimeInMillis()-calendar1.getTimeInMillis())/(24 * 60 * 60 * 1000));
运行结果:
Calendar 的常用属性
YEAR:年份
MONTH:月份
DATE:同DAY_OF_MONTH,日期
DAY_OF_MONTH:同DATE,日期
DAY_OF_YEAR:这一天是这一年中的第几天
DAY_OF_WEEK_IN_MONTH:当前月中的第几周
DAY_OF_WEEK:一周中的第几天 / 星期
HOUR:12小时制的时间
HOUR_OF_DAY:24小时制的时间
MINUTE:分钟数
SECOND:秒数
MILLISECOND:毫秒
好了,以上就是Calendar的基础用法,至于其他更强大的方法还需要我们通过自己敲代码来感受与探索。若有哪里有写错的地方,欢迎纠正!
相关文章推荐
- java中Calendar.getInstance()和new Date()的差别是什么?
- Java 8中用java.time.LocalDate全面代替老旧的Date,Calendar类
- java中Calendar.getInstance()和new Date()的差别是什么?
- Java:Date、Calendar、Timestamp的区别、相互转换与使用
- java.util.date 和 java.sql.date 两者之间有什么不同,如何转换
- 在java程序中获得当前时间的前一天时间及Calendar与Date的转换
- 如何使用Java中的Date和Calendar类
- Java Date 和 Calendar
- 为什么 java wait/notify 必须与 synchronized 一起使用,jvm究竟做了些什么
- java中利用calendar进行天数的增加后如何传递给date的解决方法
- Java-date的拼接&Calendar的计算&Timestamp时间戳-表示时间的方法
- JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算
- java_Java工具包(Arrays,Date,SimpleDateFormat,NumberFormat,DecimalFormat,Calendar,Math)
- java date 日期 利用 Calendar 实现增加一年月日时分秒
- java常用类库续1(日期操作类Date、Calendar、DateFormat、SimpleDateFormat、Math与Random类)
- Java中Calendar和Date的一些使用用法技巧
- Java Date与Calendar的使用
- java.util(Date和Calendar)
- Java:日期类Date与Calendar
- 【java中时间类Date和Calendar的使用】