一、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 为 int
time.set(Calendar.MONTH, i - 1);// 注意,Calendar对象默认一月为0
int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数
// 注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
// 2.Calendar和Date的转化
// (1) Calendar转化为Date Calendar
cal = Calendar.getInstance();
Date date = cal.getTime();
// (2) Date转化为Calendar
Date 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()方法;

一、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。

例如:

1
2
3
4
5
6
7
8
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// 1.计算某一月份的最大天数
Calendar time = Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR, year); // year 为 int
time.set(Calendar.MONTH, i - 1);// 注意,Calendar对象默认一月为0
int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数
// 注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
// 2.Calendar和Date的转化
// (1) Calendar转化为Date Calendar
cal = Calendar.getInstance();
Date date = cal.getTime();
// (2) Date转化为Calendar
Date 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()方法;

Java中Date类型详解的更多相关文章

  1. Java中String类型详解

    这篇博客是我一直想总结的,这两天一直比较忙,先上传下照片吧,过后有时间再弄成正常的. 本文主要是对Java中String类型的总结,包括其在JVM中是怎么存储的...

  2. java中的注解详解和自定义注解

    一.java中的注解详解 1.什么是注解 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据.所以,可以说注解就是源代码的元数据.比如,下面这段代码: @Override public Str ...

  3. [转载]java中import作用详解

    [转载]java中import作用详解 来源: https://blog.csdn.net/qq_25665807/article/details/74747868 这篇博客讲的真的很清楚,这个作者很 ...

  4. Java中dimension类详解

    Java中dimension类详解 https://blog.csdn.net/hrw1234567890/article/details/81217788

  5. Java中日志组件详解

    avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...

  6. Java中反射机制详解

    序言 在学习java基础时,由于学的不扎实,讲的实用性不强,就觉得没用,很多重要的知识就那样一笔带过了,像这个马上要讲的反射机制一样,当时学的时候就忽略了,到后来学习的知识中,很多东西动不动就用反射, ...

  7. JAVA中Object类方法详解

    一.引言 Object是java所有类的基类,是整个类继承结构的顶端,也是最抽象的一个类.大家天天都在使用toString().equals().hashCode().waite().notify() ...

  8. Java 中的泛型详解-Java编程思想

    Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的 ...

  9. Java 中的resultset详解

    结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据 ...

随机推荐

  1. Win10下 Java环境变量配置

    安装java的JDK   下载地址 此电脑->属性->高级设置 "系统变量"新建   变量名:Java_Home   变量值:D:\Program Files\Java ...

  2. MYSQL连接不上100061错误

    有界面的情况下启动MYSQL 无界面 https://blog.csdn.net/qq_22233621/article/details/72673176 参考

  3. 最短路———Floyd算法

    C - 六度分离 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  4. PAT Advanced 1090 Highest Price in Supply Chain (25) [树的遍历]

    题目 A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)–everyone inv ...

  5. CommandNotFoundError: No command 'conda conda'.

    出现情形 当前conda版本:4.6.11 当使用git bash,无论是在vscode中,还是在桌面上打开bash,都会出现这个错误.但是在cmd中,就可以识别conda命令. 解决 该错误只在4. ...

  6. Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)

    Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)

  7. 对象创建模式之模块模式(Module Pattern)

    模块模式可以提供软件架构,为不断增长的代码提供组织形式.JavaScript没有提供package的语言表示,但我们可以通过模块模式来分解并组织代码块,这些黑盒的代码块内的功能可以根据不断变化的软件需 ...

  8. dfs--汉诺塔

    在研究汉诺塔问题时,我们可以先分析俩个盘子的方法: 1.把第一个盘子放到辅助柱子上 2.把第二个盘子放大目标柱子上 3.把第一个盘子从辅助柱子移到目标柱子上 由此我们可以通过整体思想推导出一共有n个盘 ...

  9. 黑马程序员IDEA版JAVA基础班\JavaWeb部分视频\2-10Request和Response\第5节 request登录案例

    用户登录案例需求: 1.编写login.html登录页面 username & password 两个输入框 2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表 ...

  10. ZJNU 1164 - 考试排名——中级

    1.如果一个单元为0,表示没做过这题,不计入成绩 2.如果一个单位为负数,表示做错了这题,不计入成绩 所以只要一个单元为正数(不论是否有括号)都说明做出了这一题,计入成绩 将名字和成绩都当作字符串读入 ...