Java中Date类型详解
一、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 为 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()方法; |
Java中Date类型详解的更多相关文章
- Java中String类型详解
这篇博客是我一直想总结的,这两天一直比较忙,先上传下照片吧,过后有时间再弄成正常的. 本文主要是对Java中String类型的总结,包括其在JVM中是怎么存储的...
- java中的注解详解和自定义注解
一.java中的注解详解 1.什么是注解 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据.所以,可以说注解就是源代码的元数据.比如,下面这段代码: @Override public Str ...
- [转载]java中import作用详解
[转载]java中import作用详解 来源: https://blog.csdn.net/qq_25665807/article/details/74747868 这篇博客讲的真的很清楚,这个作者很 ...
- Java中dimension类详解
Java中dimension类详解 https://blog.csdn.net/hrw1234567890/article/details/81217788
- Java中日志组件详解
avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...
- Java中反射机制详解
序言 在学习java基础时,由于学的不扎实,讲的实用性不强,就觉得没用,很多重要的知识就那样一笔带过了,像这个马上要讲的反射机制一样,当时学的时候就忽略了,到后来学习的知识中,很多东西动不动就用反射, ...
- JAVA中Object类方法详解
一.引言 Object是java所有类的基类,是整个类继承结构的顶端,也是最抽象的一个类.大家天天都在使用toString().equals().hashCode().waite().notify() ...
- Java 中的泛型详解-Java编程思想
Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的 ...
- Java 中的resultset详解
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据 ...
随机推荐
- 流程引擎表单引擎的常见问题技术交流-关于广州xx公司对驰骋BPM提出
第1章: 先使用.net 再使用java,数据迁移问题?会存在哪些问题. RE: .net 版本的ccflow与java版本的jflow系列版本都是一个数据库结构,一个操作手册,流程模版,表单模版通用 ...
- c++ 广度优先搜索
#include <iostream> using namespace std; ; ; // >=9皆可 struct node//声明图形顶点结构 { int vertex; s ...
- 自己简单配置webpack
第一步 // 1.在新建文件夹中,npm init -y,生成package.json文件 // package.json 文件内容 { "name": "02webpa ...
- 【十日冲刺计划】第一日 星遇Sprint1计划会议成果
——小组成员 赵剑峰 张傲 周龙海 Sprint 计划会议1:定出 Sprint 目标和既定产品Backlog. 会议进程(1小时) • 首先对sprint目标进行总体介绍,概括星遇的backlog, ...
- 9.scrapy pycharm调试小技巧,请求一次,下次直接调试,不必每次都启动整个爬虫,重新请求一整遍
pycharm调试技巧:调试时,请求一次,下次直接调试,不必每次都启动整个爬虫,重新请求一整遍 [用法]cmd命令运行:scrapy shell 网址 第一步,cmd进行一次请求: scrapy sh ...
- win10设置开机以及开机无密码验证
1.开机自启动 将程序的exe的快捷方式放入下列文件夹中 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 2.开机无登录验证 ...
- house_cat 's blog
本人蒟蒻,ACM退役选手 可能会刷刷CF,写一下笔记,学一点JAVA 欢迎指正:QQ:1468580561 不要忘记努力,不要辜负自己
- sudo apt-get update数字签名错误解决方法
lzb@lzb:~/projects/curl-master$ sudo apt-get update 命中: http://mirrors.aliyun.com/ubuntu xenial InRe ...
- 阿里云服务器下安装配置phpMyAdmin
1.下载phpMyAdmin wget http://www.phpmyadmin.net/home_page/downloads.php 2.解压下载的文件 tar -zvxf phpMyAdmin ...
- 编程作业3.1:Multi-class classification(One-vs-all)
题目: 在本次练习中,你将使用逻辑回归和神经网络来识别手写数字(从0到9). 今天,自动手写数字识别被广泛使用,从识别信封上的邮政编码到识别银行支票上的金额.这个练习将向你展示如何将你所学的方法用于此 ...