add()和roll()区别

一、Calendar 月份从 0-11,要表示8月,应该传入7 .
二、set() 会自动转换为合法的日期,如 set(1999,8,31)  表示的是1999-09-31,9月没有31,应该为1999-10-1 
三、得搞清楚 add 与 roll区别
 1、add() 有两条规则:
 a)当被修改的字段超出它可以的范围时,那么比它大的字段会自动修正。
 b)如果比它小的字段是不可变的(由 Calendar 的实现类决定),那么该小字段会修正到变化最小的值。
 2、Roll() 的规则只有第二条
  当被修改的字段超出它可以的范围时,那么比它大的字段不会被修正。

获取当前时间

public static void main(String[] args) {

Calendar cal = Calendar.getInstance();

int curr_month=cal.get(Calendar.MONTH)+1;

int curr_year=cal.get(Calendar.YEAR);

int curr_day=cal.get(Calendar.DAY_OF_MONTH);

System.out.println(curr_day+"-"+curr_month+"-"+curr_year);

}

public static void main(String[] args) throws ParseException {
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
        Date beginDate = new Date();
        Calendar date = Calendar.getInstance();
        date.setTime(beginDate);
        date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);
        Date endDate = dft.parse(dft.format(date.getTime()));
        System.out.println(dft.format(endDate));
        //System.out.println(endDate.toLocaleString());
    }

public static void main(String[] args) throws ParseException {
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
        Date beginDate = new Date();
        Calendar date = Calendar.getInstance();
        date.setTime(beginDate);
        date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);
        Date endDate = dft.parse(dft.format(date.getTime()));      //将string转data类型  format格式日期
        System.out.println(dft.format(endDate));
        date.add(Calendar.DAY_OF_MONTH, -1);
        date.add(Calendar.MONTH, -3);
        System.out.println(date.get(Calendar.DAY_OF_MONTH));
        System.out.println(date.get(Calendar.MONTH));
        //System.out.println(endDate.toLocaleString());
    }

calendar 类 用法的更多相关文章

  1. day319 1、正则表达式的定义及使用 2、Date类的用法 3、Calendar类的用法

    1.正则表达式的定义及使用2.Date类的用法3.Calendar类的用法 一.正则表达式 ###01正则表达式的概念和作用* A: 正则表达式的概念和作用* a: 正则表达式的概述* 正则表达式也是 ...

  2. Calendar类经常用法 日期间的转换 set方法有巨坑

           今天发现项目的工具类方法有个bug,并且还能迷惑你的bug,刚開始也是非常迷惑,由于这个bug之前出现过,可是过了两天就自己好了.今天又出现了.哦对,今天是 2017年3月31日,之 ...

  3. java时间类Date、Calendar及用法

    对于时间类,这篇主要说明各种现实情况下如何取值,怎么定向取值,得到自己想要的时间参数.在java中时间类主要有Date.Calendar,暂时只介绍 java.util.*下的时间类,对于java.s ...

  4. 关于时间,日期,星期,月份的算法(Java中Calendar的用法)(一)

    package cn.outofmemory.codes.Date; import java.util.Calendar; import java.util.Date; public class Ca ...

  5. Java Calendar类使用总结

    平时在浏览一些网站时,有些网站会显示出当前时间,如现在是xx年xx月xx日 xx时xx分xx秒,在实际的开发过程中,也会涉及到日期和时间的计算,Java中提供了一个专门的类Calendar来处理日期与 ...

  6. Java Calendar类的使用总结

    在实际项目当中,我们经常会涉及到对时间的处理,例如登陆网站,我们会看到网站首页显示XXX,欢迎您!今天是XXXX年....某些网站会记录下用户登陆的时间,比如银行的一些网站,对于这些经常需要处理的问题 ...

  7. 处理时间的类 —— System类、Date类 、SimpleDateFormat类 与 Calendar类

    在我们以往的编程中,就有过通过运行前和运行后时间差来判断时间复杂度的例子,再扯得远一点,我们在C语言中制造随机数的操作,也要用到有关时间的函数.而且,在我们未来的编程中,也会时不时要用到能够读取当前时 ...

  8. Java Calendar类的使用总结【转】

    感谢!原文地址:https://www.cnblogs.com/huangminwen/p/6041168.html Java Calendar类的使用总结 在实际项目当中,我们经常会涉及到对时间的处 ...

  9. Calendar类

    Calendar类 注意:根据日历规则,如果想要这个月减去5天,那么则为: add(Calendar.Day,-5) 成员方法: public int get(int field):返回给定日历段的值 ...

随机推荐

  1. 使用hibernate validator出现

    1.javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Integer ...

  2. js右击事件

    先贴代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  3. play 学习 一 : 构建SBT的play项目

    因为帮一个朋友做一个简单的项目,档案管理.同时也为了自己能学习PLay框架,所以记录一下. 项目GitHub地址: https://github.com/liufeiSAP/ArchiveManage ...

  4. mybatis---demo1--(缓存)----bai

    News-mapper.xml 配置: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ma ...

  5. 数组排序----Demo

    //选择排序,分为简单选择排序.树形选择排序(锦标赛排序).堆排序 此算法为简单选择排序 public static void selectSort(int[] a){ for(int i=0;i&l ...

  6. Python-通过调用Nmap来进行端口扫描

    首先要安装python-nmap库,还要安装配置好nmap 实验机器IP:192.168.220.139 端口开放情况 代码 # -*- coding:utf-8 -*- __author__ = & ...

  7. 用户认证auth模块

    一.auth模块 from django.contrib import auth 1 .authenticate()   :验证用户输入的用户名和密码是否相同 提供了用户认证,即验证用户名以及密码是否 ...

  8. SpringSecurity02 表单登录、SpringSecurity配置类

    1 功能需求 springSecuriy默认的登录窗口是一个弹出窗口,而且会默认对所有的请求都进行拦截:要求更改登录页面(使用表单登录).排除掉一些请求的拦截 2 编写一个springSecurity ...

  9. error C2512: “HelloWorld”: 没有合适的默认构造函数可用

    error C2512: "HelloWorld": 没有合适的默认构造函数可用 c++ newbie error C2512: no appropriate default co ...

  10. Entity Framework Code-First(2):What is Code-First?

    What is Code-First?: Entity Framework introduced Code-First approach from Entity Framework 4.1. Code ...