Calendar中add函数和roll函数的用法及区别

简介: Calendar中add()和roll()函数的用法一、取某个时间点后的整点时刻。例如1984年7月7日15:23:05后的整点时刻即为1984-07-07 16:00:00。实现如下:Calendar calendar = Calendar.getInstance();calendar.add(Calendar.HOUR_OF_DAY, 1);//小时上加1calendar.set(Calendar.MINUTE, 0);//分钟设为0calendar.set(Calendar.SECOND, 0);//秒钟设为0 二、取某个日历之前的某个月。

Calendar中add()和roll()函数的用法
一、取某个时间点后的整点时刻。例如1984年7月7日15:23:05后的整点时刻即为1984-07-07 16:00:00。
实现如下:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY, 1);//小时上加1
calendar.set(Calendar.MINUTE, 0);//分钟设为0
calendar.set(Calendar.SECOND, 0);//秒钟设为0

二、取某个日历之前的某个月。例如要取2002年1月12号之前1个月的时间,应该是2001年12月12日。
Calendar calendar = Calendar.getInstance();
calendar.set(2002, 0, 12);//代表2002年1月12日
calendar.add(Calendar.MONTH, -1);//这样就将日期设置成了2001年12月12日。
System.out.println(calendar.getTime().toString());

但是这种情况如果用roll()来实现。如以下代码:
Calendar calendar = Calendar.getInstance();
calendar.set(2002, 0, 12);//代表2002年1月12日
calendar.roll(Calendar.MONTH, -1);//这样就将日期设置成了2002年12月12日。
System.out.println(calendar.getTime().toString());

结论:roll()函数处理,只会相应的字段进行处理不会智能的对其它字段也进行逻辑上的改变。
        add()函数会在逻辑上改变其它字段,使结果正确。

注:Calendar中的Month是从0-11的,0代表1月,11代表12月。

http://blog.sina.com.cn/s/blog_62c89b450100sau9.html

 

相关文章
|
IDE 开发工具 Windows
 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件
 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件
406 3
|
Android开发
android Compose中沉浸式设计、导航栏、状态栏的处理
android Compose中沉浸式设计、导航栏、状态栏的处理
2628 0
android Compose中沉浸式设计、导航栏、状态栏的处理
|
Android开发 数据格式 XML
Android FrameLayout子view居中(左居中,右居中)等
Android的布局FrameLayout默认是把布局内的子view堆砌在左上角,但是,可以通过设置子view的: android:layout_gravity 此参数控制子view的布局位置,实现FrameLayou...
2620 0
|
SQL Java 数据库连接
|
存储 Java Maven
SpringBoot整合Jest和Elasticsearch实践
SpringBoot整合Jest和Elasticsearch实践
416 1
|
数据采集 存储 自然语言处理
基于网络爬虫的微博热点分析,包括文本分析和主题分析
本文介绍了一个基于Python网络爬虫的微博热点分析系统,使用requests和pandas等库收集和处理数据,结合jieba分词、LDA主题分析和snownlp情感分析技术,对微博文本进行深入分析,并利用matplotlib进行数据可视化,以洞察微博用户的关注点和情感倾向。
624 0
基于网络爬虫的微博热点分析,包括文本分析和主题分析
|
消息中间件 缓存 负载均衡
构建高性能的后端服务:优化策略与实践
在当今互联网时代,构建高性能的后端服务至关重要。本文将深入探讨如何通过优化策略与实践来提升后端服务的性能。我们将从数据库优化、缓存策略、异步处理和负载均衡等方面展开讨论,帮助开发者构建出稳定、高效的后端架构。
674 2
|
Android开发
技术经验分享:Android前后台切换的监听
技术经验分享:Android前后台切换的监听
356 2
|
SQL 关系型数据库 数据库
在 Postgres 中使用 Exists
【8月更文挑战第11天】
302 0
|
前端开发 JavaScript 网络安全
request.getSession().getAttribute 获取不到值,获取到的是null
这篇文章讨论了在使用前后端分离架构时,通过AJAX请求进行会话管理时遇到的跨域问题,导致`request.getSession().getAttribute`获取到的值为null。解决办法是设置`withCredentials=true`以允许跨域请求携带cookie,确保请求凭证得以传递。

热门文章

最新文章