这篇文章是为了说清楚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
分享到:
相关推荐
Java 中 Calendar 类的用法小结 Calendar 类是 Java 语言中一个基本而重要的组成部分,用于处理日期和时间。下面是 Calendar 类的用法小结: 一、取得当前时间 使用 Calendar.getInstance() 方法可以取得当前时间...
本篇文章主要总结了Java中关于日期处理的基础知识,包括`java.util.Calendar`,`java.util.GregorianCalendar`以及`java.util.Date`这三个核心类。 首先,我们来看`java.util.Date`类。`Date`类是用于表示特定瞬间...
#### 小结 以上介绍了两种在Java中获取本地系统时间的方法。通过`Calendar`类可以直接获取各种日期时间组件,而通过`SimpleDateFormat`类则可以方便地将日期时间对象转换为字符串。根据实际应用场景选择合适的方法...
- **小结** - Java 的 I/O 包提供了丰富的类来处理文件和流,包括基本的字节流、字符流、文件流、缓冲流等。 **1.4 Java中的一些常用词汇** - **术语解释** - 如继承、封装、多态等。 **1.5 J2SE学习中的30个...
关于java中date和Calendar日期处理小结,包含一些常用方法等
### 小结 通过上述示例可以看出,使用`Calendar`类获取时间是非常灵活和方便的。无论是需要获取精确到秒的时间戳还是只需要年月日这样的基本信息,都可以轻松实现。这对于日常开发中处理日期相关的功能非常有帮助。...
Java中的Date类和Calendar类是处理时间和日期的核心组件,它们在Java编程中扮演着至关重要的角色。Date类自JDK1.0起就被用来表示时间,但随着时间的推移,由于其功能有限且不支持国际化,从JDK1.1开始,推荐使用...
#### 三、小结 以上就是Java中根据日期计算年龄以及确定星期的几种方法。通过`SimpleDateFormat`可以格式化日期,而`Calendar`类则提供了丰富的日期和时间操作接口。掌握这些基础知识,能够帮助开发者更高效地进行...
#### 四、小结 通过上述示例,我们可以看出Java提供了丰富的API来获取日期时间。不同的应用场景可以选择不同的类和方法来满足需求。例如,在需要处理数据库操作时,使用`java.sql.Date`更为合适;而在需要格式化...
- **3.3 本章小结**:总结了Java语言基础部分的关键知识点,并鼓励读者继续深入学习。 #### 第四部分:运算符和类型转换 ##### 第4章 运算符和类型转换 - **4.1 Java的运算符** - **4.1.1 区分/和%运算符**:...
小结 Java 中有多种时间格式,包括 java.util.Date、java.util.Calendar、java.util.GregorianCalendar 等。这些类都可以用来表示和操作时间。但是,在实际开发中,需要根据不同的需求选择合适的时间格式。同时,...
**小结** 以上代码示例展示了Java中日期格式化的一些基本用法。对于初学者来说,掌握这些基础是非常重要的。通过这些方法,可以方便地进行日期的转换和格式化,以便更好地处理和展示日期数据。此外,还可以进一步...
Java时间处理是编程中常见的需求,它涉及到日期和时间的计算、格式化和转换。以下是对Java时间处理的详细说明: 1. 计算某一月份的最大天数: 使用`Calendar`类,通过`getActualMaximum()`方法可以获取指定月份的...
#### 小结 以上方法展示了如何使用Java中的`Calendar`类来获取和格式化日期时间。通过不同的格式化方法,可以满足不同业务场景的需求。此外,还可以利用`SimpleDateFormat`等类来实现更多样化的日期时间格式转换。...
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高级面试题小结" 本文主要介绍了Java高级面试题,包括对部分名词的释义及代码解析,具有一定收藏价值,需要的朋友可以参考下。以下是对标题和描述中所说的知识点的详细解释: 一、可变参数 可变参数允许调用...
`java.util.Calendar`是另一个用于处理日期和时间的类,它提供了更加灵活的日期操作。我们可以获取年、月、日、小时、分钟和秒等信息,如下所示: ```java Calendar calendar = Calendar.getInstance(); int year =...
### 小结 通过上述方法,我们可以看到Java中使用`Calendar`和`Date`类来处理日期和时间非常灵活和方便。不同的格式可以通过简单的字符串拼接来实现。此外,还可以利用`SimpleDateFormat`类来进一步定制日期和时间的...
计算两个日期之间相差的天数,可以通过`java.util.Calendar`类来实现。首先将字符串转换为日期,然后获取每个日期对应的毫秒值,相减得到的差值除以一天的毫秒数(1000 * 60 * 60 * 24)即可。示例如下: ```java ...
Java时间类Date类和Calendar类的使用详解 Java时间类Date类和Calendar类是Java语言...小结 本文主要介绍了Java时间类Date类和Calendar类的使用详解。通过学习这两个类,可以更好地处理日期和时间,并提高编程效率。