`
西蜀石兰
  • 浏览: 117024 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java-Calendar小结

 
阅读更多
这篇文章是为了说清楚Calendar这个类的初始化方法set以及如何获取年月日
以下是测试代码:
//这段代码的目的是测试Calendar这个类的两个set方法以及如何获取年月日
//新建一个对象
Calendar cld=Calendar.getInstance();
//设置凌晨时间精确到秒
cld.set(2015,8,15,0,0,0);
System.out.println("凌晨开始"+cld.getTimeInMillis());
//设置午夜时间精确到秒
cld.set(2015,8,15,59,59);
System.out.println("午夜结束"+cld.getTimeInMillis());
//同样的日期,不设置时分秒
cld.set(2015,8,15);
System.out.println("原对象不设时分秒"+cld.getTimeInMillis());
//为了验证cld不设置时分秒与之前的操作是否有关,新建一个对象
Calendar cld1=Calendar.getInstance();
cld1.set(2015,8,15);
System.out.println("新对象不设时分秒"+cld1.getTimeInMillis());

执行第一次结果:

执行第二次结果:


发现:
1.调用set方法只设置年月日的时候,与之前set时分秒获得的毫秒数相同;
2.毫秒数不是一个固定的值,是随机的;
3.cld和cld1的毫秒数相差是很大的
结论:
1.对于一个Calendar对象而言,如果不进行任何设置,默认的是当前时间,从生成该对象开始,该对象的时分秒日期等就不会变化;
2.如果调用set方法,仅仅set年月日,该方法会覆盖之前的年月日,但不会覆盖时分秒;
3.当调用set方法,设置年月日时分秒时,才会覆盖原对象的值,但依旧没有覆盖毫秒;

附:
如何获取一个对象的年月日
calendar.get(Calendar.YEAR);
不知道这是谁设计的操蛋的写法,反正直接调用对象是不行滴。。。
PPS:月份默认为0-11,少侠们在转化的时候需要注意

----------2015-10-19补充-----------
这次是想补充关于毫秒数的问题,由于set方法没有设置毫秒数,默认的毫秒数是当前时刻的毫秒数,大多数情况下是不受影响的,不过当需要根据毫秒数查询时,会因为取不到12:00:00:000这个毫秒数,导致查询结果有误差。
方法是把获得的毫秒数除以1000,再乘1000,这样可以把毫秒数置零;而对于结束时刻,可以额外加上999
  • 大小: 6.3 KB
  • 大小: 6.8 KB
  • 大小: 6.8 KB
分享到:
评论

相关推荐

    calendar的用法小结

    关于java中的calendar类的用法小结

    Java中Date和Calendar日期处理

    关于java中date和Calendar日期处理小结,包含一些常用方法等

    (超赞)JAVA精华之--深入JAVA API

    1.3.11 小结 1.4 java中的一些常用词汇 1.5 J2SE学习中的30个基本概念 1.6 Java线程 1.7 Java 5.0多线程编程 1.8 Java Socket编程 1.9 Java的内存泄漏 1.10 抽象类与接口的区别 1.11 Java变量类型间的相互转换 2 ...

    Java中Date类和Calendar类的常用实例小结

    主要介绍了Java中Date类和Calendar类的常用实例小结,是Java入门学习中的基础知识的运用,需要的朋友可以参考下

    Java基础知识点总结.docx

    Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java...

    JAVA SE学习精华集锦

    1.3.11 小结 56 1.4 java中的一些常用词汇 56 1.5 J2SE学习中的30个基本概念 58 1.6 Java线程 60 1.7 Java 5.0多线程编程 65 1.8 Java Socket编程 80 1.9 Java的内存泄漏 85 1.10 抽象类与接口的区别 86 1.11 Java...

    疯狂JAVA讲义

    1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种基本结构 25 2.1.3 面向对象程序设计简介 27 2.1.4 面向对象的基本特征 28 2.2 UML...

    Java开发技术大全 电子版

    1.5本章小结18 第2章Java语言基础19 2.1Java语言的特点19 2.2Java程序的构成21 2.3数据类 型23 2.3.1基本数据类型23 2.3.2常量25 2.3.3变量26 2.3.4整型数据27 .2.3.5浮点型数据29 2.3.6字符型数据30 ...

    java范例开发大全源代码

     11.3 Date类和Calendar类 324  实例191 使用Date类获取系统的当前时间 324  实例192 使用DateFormat类获取系统的当前时间 325  实例193 使用GregorianCalendar类获取系统的当前时间 326  实例194 使用...

    java范例开发大全

    11.3 Date类和Calendar类 324 实例191 使用Date类获取系统的当前时间 324 实例192 使用DateFormat类获取系统的当前时间 325 实例193 使用GregorianCalendar类获取系统的当前时间 326 实例194 使用SimpleDateFormat类...

    Java范例开发大全 (源程序)

     11.3 Date类和Calendar类 324  实例191 使用Date类获取系统的当前时间 324  实例192 使用DateFormat类获取系统的当前时间 325  实例193 使用GregorianCalendar类获取系统的当前时间 326  实例194 使用...

    Java范例开发大全(全书源程序)

    11.3 Date类和Calendar类 324 实例191 使用Date类获取系统的当前时间 324 实例192 使用DateFormat类获取系统的当前时间 325 实例193 使用GregorianCalendar类获取系统的当前时间 326 实例194 使用...

    java范例开发大全(pdf&源码)

    11.3 Date类和Calendar类 324 实例191 使用Date类获取系统的当前时间 324 实例192 使用DateFormat类获取系统的当前时间 325 实例193 使用GregorianCalendar类获取系统的当前时间 326 实例194 使用SimpleDateFormat类...

    Spring.3.x企业应用开发实战(完整版).part2

    1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...

    Spring3.x企业应用开发实战(完整版) part1

    1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...

Global site tag (gtag.js) - Google Analytics