精彩牛耳,用心缔造

E Java日期处理核心类之Calendar详解

作者: 编辑: 来源: 发布日期: 2018.12.26
信息摘要:
接触过Java的同学应该都知道,Java有很多可以直接拿来使用的工具类,而这些工具类大部分来自于java.util包,有处理字符串的专门类,…

接触过Java的同学应该都知道,Java有很多可以直接拿来使用的工具类,而这些工具类大部分来自于java.util包,有处理字符串的专门类,有从控制台输入的类等,而我们今天主要讨论的是Java中处理日期时间的类,JDK1.1之前我们通常使用java.util.Date这个类来处理日期时间,但是自JDK1.1之后推出了Calendar(日历)这个抽象类来专门用来日期时间,那么我们接下来就来研究研究这个Calendar类.

Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量.

这是官方API对Calendar的解释,

作为抽象类,他本身不能直接实例化,程序只能创建Calendar子类的实例,Java本身提供了一个CregorianCalendar类,一个代表格里高利日历的子类,它代表了通常所说的公历.

Calendar的用法包括了一下几点:

1)获得年、月、日、周、小时、分钟

get(int field):  参数表示日历字段。如年、月、日等,它被Calendar类的静态常量,用法如下:

获得年:c.get(Calendar.YEAR)

获得月:c.get(Calendar.MONTH)

获得日:c.get(Calendar.DATE)

2)设置年、月、日、周、小时、分钟

set(int field,int value):参数field的取值为Calendar.YEAR、Calendar.MONTH..

3)日期相加减

add(int fields, int amount):参数fields表示日历字段;amount为字段添加的日期或时间量,可以为负数。

将当前年份减1年:c.add(Calendar.YEAR,-1):

将当前天数加2天:c.add(Calendar.DATE,2)

4)将日期转换为Date对象

Date d=c.getTime();

Calendar中一些陷阱,很容易掉下去:

1、Calendar的星期是从周日开始的,常量值为0。

2、Calendar的月份是从一月开始的,常量值为0。

3、Calendar的每个月的第一天值为1。

下面给出一个综合实例看看Calendar类的用法:

【相关推荐】
牛耳推荐资讯
教育厅公布线下复学通知,这期间做好这四件事

教育厅公布线下复学通知,这期间做好这四件事

一场突如其来的疫情似乎让一切放慢了脚步,但是“停课不停学”,深圳、广州、武汉、杭州、北京,湖北、云南、江苏……疫情期间,全国20多省市,通过搭建在线课堂,助力数千万学生“不停学”。近日,湖南省出台最新线下复课时间,预计在4月上旬至中旬陆续错峰开学。这个超长假期除了每天关注疫情外,线上学习也成了一......
2020-03-31
牛耳教育-Java开发稳步进阶之不容忽视的“索引”

牛耳教育-Java开发稳步进阶之不容忽视的“索引”

作为Java工程师,MySQL数据库的灵活运用是必须掌握的技能。而“索引”作为数据库的两大神器之一,有很多初学Java的同学在接触时感觉无从下手,接下来我们把MySQL数据库索引相关的知识点仔细梳理一遍。一、覆盖索引如果一个索引包含了满足SQL语句中字段与条件的数据,那么它就叫做覆盖索引。覆盖索引只需要在一棵索引......
2020-03-30
牛耳教育丨Java开发稳步进阶之JVM内存区域

牛耳教育丨Java开发稳步进阶之JVM内存区域

Java语言最重要的特点之一:跨平台使用,正是由于JVM的存在。想要Java开发稳步进阶,学JVM这条路绕不开。为什么要学JVM我们都知道,要做Java开发,必须在你的电脑上安装JDK才行,安装JDK之后里面会有一个JRE的目录,JRE提供了软件环境----JVM。在开发过程中当我们出现内存泄漏、内存溢出的时候我们不应该想到-Xm去设置......
2020-03-27

咨询热线

400-0731-162
  
    • *

    • *