木卯先生的笔记---Date类、DateFormat类和Calendar类
1.Date类
1.1 简介
Date类是 java.util 包下面的类,表示特定的瞬间,精确到毫秒。
1.2 方法
1.2.1 Date() 构造方法
public Date() :分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
/*Date类的空参数构造方法
Date()获取的就是当前系统的日期和时间
*/
private static void demo01() {
Date date = new Date();
System.out.println(date);
}
1.2.2 Date(long date)
public Date(long date) :分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年
1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
private static void demo01() {
Date date = new Date(556235456000L);
System.out.println(date);//Tue Aug 18 06:50:56 CDT 1987
}
1.2.3 getTime()
public long getTime() : 把日期对象转换成对应的时间毫秒值。
private static void demo01() {
Date date = new Date(556235456000L);
System.out.println(date.getTime());//
}
2.DateFormat类
2.1 简介
public abstract class DateFormat extends Format
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是Date对象转换为String对象)、解析(String对象转换为Date对象)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。
2.2 方法
2.2.1 构造方法
因为DateFormat是一个抽象类,所以需要使用到他的子类java.text.SimpleDateFormat。它的构造方法需要一个字符串类型的参数pattern,来指定自定义的日期格式。
构造方法为:public SimpleDateFormat(String pattern)
其中,模式是区分大小写的, y:年 M:月 d:日 H:小时 m:分 s:秒
模式的格式举例:“ yyyy-MM-dd HH:mm:ss ” " yyyy年MM月dd日 HH时mm分ss秒 "
2.2.2 String format(Date date)
使用DateFormat类中的方法format,把日期格式化为文本
String format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定的模式
2.调用SimpleDateFormat对象中的format,按照构造方法指定的模式,把Date日期,格式化为符合模式的字符
private static void demo01() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String format = sdf.format(date);
System.out.println(date); //Wed Oct 23 20:09:38 CST 2019
System.out.println(format);//2019-10-23 20:09:38
}
2.2.3 Date parse(String source)
使用DateFormat类中的方法parse,把文本解析为日期
Date parse(String source) 把符合模式的字符串,解析为Date日期
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定的模式
2.调用SimpleDateFormat对象中的format,按照构造方法指定的模式,把符合构造方法模式中的字符串,解析为Date日期
注意:
public Date parse(String source) throws ParseException
parse方法声明了一个异常叫ParseException解析异常
如果字符串和构造方法中的模式不一样,那么查程序就会抛出异常
调用一个抛出异常的方法,就必须处理这个异常,要么throws继续声明抛出这个异常,要么try...catch自己处理这个异常。
private static void demo02() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = sdf.parse("2019-10-21 12:43:59");
System.out.println(parse);//Mon Oct 21 12:43:59 CST 2019
}
3.Calendar类
3.1 简介
Calendar类是一个抽象类,它在 java.util 包下。Calendar类里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、
HOUR )Calendar无法直接创建对象使用,里边有一个静态方法getInstance(),返回了Calendar类的子类对象。
static Calendar getInstance() 使用默认时区和语言环境获得一个日历对象。
3.2 方法
3.2.1 add(int field, int amount)
public abstract void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去指定的时间量。
把指定的字段增加或减少指定的值,
int amount :增加(整数)或者减少(负数)的值。
int field:日历类的字段,可以使用Calendar类的静态成员变量获取
private static void demo03() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, 2); //将年份增加2年
System.out.println(calendar.get(Calendar.YEAR));
}
3.2.2 set(int field, int value)
public void set(int field, int value) :将给定的日历字段设置为给定值。
参数:int value 传递的字段设置的具体的值
int field:日历类的字段,可以使用Calendar类的静态成员变量获取
private static void demo02() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2020);
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
//calendar.set(2020,20,20);同时设置
}
3.2.3 get(int field)
public int get(int field) :返回给定日历字段的值。
int field:日历类的字段,可以使用Calendar类的静态成员变量获取
private static void demo01() {
//使用getInstance获取Calendar对象
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
int month = calendar.get(Calendar.MONTH);
System.out.println(month + 1);
}
木卯先生的笔记---Date类、DateFormat类和Calendar类的更多相关文章
- 木卯先生的笔记---Object类
1.简介 Object类是在 java.lang 包下的一个类,它是所有类的父类(也就是所有类都是Object类的子类,如果定义一个类的时候,没有指定继承的类,默认的就是继承Object类),所以Ob ...
- Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat、Calendar类
Math类* A:Math类概述 * Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. * B:成员方法 * public static int abs(int a) ...
- 使用 Date 和 SimpleDateFormat 类表示时间、Calendar类和Math类
一. Date 和 SimpleDateFormat类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取当 ...
- Java学习关于时间操作的应用类--Date类、Calendar类及其子类
Date类 Date类封装了当期时间和日期.与Java1.0定义的原始版的Date类相比,Date类发生了本质的变化.在Java1.1发布时,原始版Date类定义的许多功能被移进Calendar类和D ...
- [常用类]时间内Date、SimpleDateFormat、Calendar类
Date类的概述是util包下的,不能导入sql包的.* 类 Date 表示特定的瞬间,精确到毫秒. *构造方法 * public Date() * public Date(long date) 如果 ...
- Java api 入门教程 之 JAVA的Date类与Calendar类
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理. 一.这里简单介绍一下Date类的使 ...
- JAVA的Date类与Calendar类【转】
Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date ...
- Java的Date类与Calendar类
一:Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Da ...
- JAVA Date类与Calendar类【转】
Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date ...
随机推荐
- 【转载】linux文件系统简介
文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基本原理.文件存储结构.软链接 ...
- python事件调度库sched
事件调度 sched模块内容很简单,只定义了一个类.它用来最为一个通用的事件调度模块. class sched.scheduler(timefunc, delayfunc)这个类定义了调度事件的通用接 ...
- spring retry 重试机制完整例子
public static Boolean vpmsRetryCoupon(final String userId) { // 构建重试模板实例 RetryTemplate retryTemplate ...
- java基础之二维数组不定义列数
有一种特殊的二维数组,它的行数确定,但是每行的列数不确定.这样的的数组实现方法:先创建制定行数,列数缺省的二维数组,然后对数组的每一行重新初始化.举例如下: package day5; //第二种定义 ...
- java基础之Date类
Date类: Date类概述 类 Date 表示特定的瞬间,精确到毫秒. 构造方法 public Date() public Date(long date) 成员方法 public long getT ...
- 坐标转换,EPSG:4326转换成高德坐标教程
这里先给大家介绍几个坐标系: 1.WGS84:国际坐标系,为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系.2.GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标 ...
- CAS客户端配置
1. 导出证书 以上操作会在当前目录产生文件:ssodemo.crt(需要用到的文件请看CAS服务端配置那篇文章) 2. 客户端导入证书 以上操作会在jdk安装目录jre\lib\security下产 ...
- springboot整合rabbitMQ时遇到的消息无法入列问题
问题描述: 对列和交换器配置如下(绑定的正常交换器的key是“convert”): 管理平台上手动发是可以的: 而通过程序发消息不行,根本没有进入队列: 解决:显式指定交换器(备选交换器和死信交换器都 ...
- 【论文翻译】NIN层论文中英对照翻译--(Network In Network)
[论文翻译]NIN层论文中英对照翻译--(Network In Network) [开始时间]2018.09.27 [完成时间]2018.10.03 [论文翻译]NIN层论文中英对照翻译--(Netw ...
- 【心无旁骛】vuex-typescript-example
我不惮以最大的赞美去赞美这样的项目,真的是非常有创意又有能力. 先放上我喜欢的这个项目的开源地址:https://github.com/gluons/vuex-typescript-example 我 ...