一、Date类型的初始化

1、 Date(int year, int month, int date); 直接写入年份是得不到正确的结果的。 因为java中Date是从1900年开始算的,所以前面的第一个参数只要填入从1900年后过了多少年就是你想要得到的年份。 月需要减1,日可以直接插入。 这种方法用的比较少,常用的是第二种方法。

2、 这种方法是将一个符合特定格式,比如yyyy-MM-dd,的字符串转化成为Date类型的数据。 首先,定义一个Date类型的对象 Date date = null; 再定义一个String类型的符合格式的字符串 String dateStr = "2010-9-10"; 把这个字符串进行拆分 String[ ]  dateDivide = dateStr.split("-"); 把年月日分别取出,赋给Calendar,用 Calendar的getTime();取得日期再赋给date。

例如:

if(dateDivide.length==3){  int year = Integer.parseInt(dateDivide [0].trim());//去掉空格  int month = Integer.parseInt(dateDivide [1].trim());  int day = Integer.parseInt(dateDivide [2].trim());  Calendar c = Calendar.getInstance();//获取一个日历实例  c.set(year, month-1, day);//设定日历的日期  date = c.getTime();
}

二、Date类型的比较

Date a;
Date b;
假设现在你已经实例化了a和b
a.after(b)返回一个boolean,如果a的时间在b之后(不包括等于)返回true
b.before(a)返回一个boolean,如果b的时间在a之前(不包括等于)返回true
a.equals(b)返回一个boolean,如果a的时间和b相等返回true

三、Date类型常用的操作函数

        // 1.计算某一月份的最大天数Calendar time = Calendar.getInstance();time.clear();time.set(Calendar.YEAR, year); // year 为 inttime.set(Calendar.MONTH, i - 1);// 注意,Calendar对象默认一月为0int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数// 注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间// 2.Calendar和Date的转化 // (1) Calendar转化为Date Calendarcal = Calendar.getInstance();Date date = cal.getTime();// (2) Date转化为CalendarDate date = new Date();Calendar cal = Calendar.getInstance();cal.setTime(date);// 3.格式化输出日期时间(这个用的比较多)Date date = new Date();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String time = df.format(date);System.out.println(time);// 4.计算一年中的第几星期// (1)计算某一天是一年中的第几星期Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, 2006);cal.set(Calendar.MONTH, 8);cal.set(Calendar.DAY_OF_MONTH, 3);int weekno = cal.get(Calendar.WEEK_OF_YEAR);// (2)计算一年中的第几星期是几号SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, 2006);cal.set(Calendar.WEEK_OF_YEAR, 1);cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);System.out.println(df.format(cal.getTime()));//输出:2006-01-02// 5.add()和roll()的用法(不太常用)// (1)add()方法SimpleDateFormat df=newSimpleDateFormat("yyyy-MM-dd");Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, 2006);cal.set(Calendar.MONTH, 8);cal.set(Calendar.DAY_OF_MONTH, 3);cal.add(Calendar.DATE, -4);Date date = cal.getTime();System.out.println(df.format(date));cal.add(Calendar.DATE, 4);date = cal.getTime();System.out.println(df.format(date));//输出:2006-08-30 2006-09-03//(2)roll方法cal.set(Calendar.YEAR, 2006);cal.set(Calendar.MONTH,8);cal.set(Calendar.DAY_OF_MONTH,3);cal.roll(Calendar.DATE, -4);date=cal.getTime();System.out.println(df.format(date));cal.roll(Calendar.DATE,4);date=cal.getTime();System.out.println(df.format(date));//输出:2006-09-292006-09-03// 可见,roll()方法在本月内循环,一般使用add()方法;

转载于:https://www.cnblogs.com/0717GG/p/7087663.html

最新Java中Date类型详解相关推荐

  1. [转载] java 中 date类型详解

    参考链接: Java中的date after()方法 举例: Date的after和before方法解释 Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时 ...

  2. java中枚举类型详解

    枚举类型的引入: 枚举是从java5开始提供的一种新的数据类型,是一个特殊的类,就是固定的多个常量对象的集合. 定义格式: [修饰]enum 枚举类名 { 常量A,常量B,常量C; } 代码: pac ...

  3. Java中JDBC连接数据库详解

    今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...

  4. JAVA中的Random详解

    JAVA中的Random详解 首先,在JDK自带的常用的random中有两个,这俩都是产生随机数的,不过一个是util下的random,另外一个是Math下的.我们分别介绍一下 util中的rando ...

  5. Java中super关键字详解

    Java中super关键字详解 super有什么用? super什么时候不可以省略呢? super在内存图中是如何存在的呢? super使用时的注意事项 super有什么用? (1)当子类中构造方法第 ...

  6. Java中的byte详解

    Java中的byte详解 介绍 byte,即字节,由8位的二进制组成.在Java中,byte类型的数据是8位带符号的二进制数. 在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在 ...

  7. java中new关键字详解

    java中new关键字详解 在java中我们可以经常使用new来创建一个对象,但是这对于初学者来说可能只会使用却不能理解new关键字和它的语法 new关键字的语法 注意使用前先导包,一般我们使用ide ...

  8. Java中Iterator迭代器详解

    目录 一.Java中Iterator迭代器详解 1.为什么需要迭代器 2.迭代器长什么样子 3.如何使用迭代器 使用步骤: 代码演示: 迭代器可以简化为增强型for循环: 4.Iterator与Lis ...

  9. 【转载】java中泛型使用详解

    引入 Type接口 Class类 Method类 Field类 ParameterizedType接口 TypeVariable接口 类中定义泛型变量 方法中定义泛型变量 方法中泛型参数和泛型返回值 ...

最新文章

  1. php写出个人所得税,PHP计算个人所得税示例【不使用速算扣除数】
  2. memc_nginx+srcache_nginx+memcached构建透明的动态页面缓存
  3. Python_堆栈和队列
  4. 安装Ubuntu版本linux过程中没有提示设置root用户密码问题的解决办法
  5. 前端笔记-Vue中缺少router-view导致跳转失效
  6. 用于金融时序预测的神经网络:可改善经典的移动平均线策略
  7. Android 利用属ObjectAnimator,AnimatorSet性动画绘制一个弹球,加速下落,到底部时挤压,然后减速上弹...
  8. php判断当前浏览器是否微信浏览器
  9. Coded UI- Run Coded UI in WinForm
  10. [转]IDE 、SATA、SCSI 的区别
  11. 银行会计凭证粗略整理
  12. python名词_使用Python词性标记提取名词(循环)
  13. Hazelcast是什么
  14. 谷歌浏览器Google如何设置站点弹出窗口
  15. 【图文详解】Android手机系统精简 搭建Linux集群硬件环境 Jdk运行HelloWorld
  16. 【WebApp】离线webapp (android)开发
  17. Python之简单飞机行李托运计费系统
  18. “系统建模与辨识数据库”系统辨识-伊利湖问题建模
  19. 经济学模型2-生产可能性边界
  20. 回退git add操作

热门文章

  1. cimiss数据_CIMISS,你太优秀了!
  2. python 开发板-MicroPython:STM32 上 的 Python 开发
  3. echarts x轴文字个数太多_echarts x轴标签文字过多导致显示不全,最有效的3种解决方法...
  4. php 开发cs,PHP开发CS结构的技巧
  5. 两条线段相切弧_两条直线间的圆弧连接
  6. asp.net 网页做一个浮动层_你们要的HTML、CSS布局技巧:如何规范搭建网页架构?
  7. 语言编奇数和合偶数和_不同的语言怎样求解奇数和?
  8. mysql注册数据库_基于mysql数据库的注册
  9. oracle oud什么意思,oracle 在linux上,如何使用oud工具恢復truncate 表中的记录? 超急!请帮帮忙...
  10. Java Spring @Scheduled 定时任务crontab表达式设置