Java.util.Calendar类简单介绍

Java.util.Calendar

Calendar类是一个抽象类,里面提供了很多操作日历的方法。Calendar类无法直接创建对象使用,需要利用里面的一个静态方法getInstance(),该方法返回一个Calendar对象(子类对象)。该静态方法使用默认时区和语言环境获取一个日历。这个静态方法是必须知道的否则根本玩不转Calendar。

1、Calendar类中的常量


Calendar cal = Calendar.getInstance();

cal.get(Calendar.DATE);//-----------------当天 1-31

cal.get(Calendar.DAY_OF_MONTH);//---------当天 1-31

cal.get(Calendar.DAY_OF_WEEK);//----从星期天开始计算,如果今天星期二,那么返回3

cal.get(Calendar.DAY_OF_YEAR);//-------------一年中的第多少天

cal.get(Calendar.HOUR);//-----------------------12小时制

cal.get(Calendar.HOUR_OF_DAY);//----------------24小时制,一般使用这个属性赋值

cal.get(Calendar.MILLISECOND);//----------------获取毫秒数

cal.get(Calendar.MINUTE);//---------------------分钟

cal.get(Calendar.SECOND);//--------------------获取秒

cal.get(Calendar.WEEK_OF_MONTH);//-----------一个月中的第几周

cal.get(Calendar.WEEK_OF_YEAR);//-------------一年中的第几周

cal.get(Calendar.MONTH);//-------月份,从0到11表示12个月份,比实际月份值小1

cal.get(Calendar.AM_PM);//---0代表上午 1代表下午

星期日:Calendar.SUNDAY=1

星期一:Calendar.MONDAY=2

星期二:Calendar.TUESDAY=3

星期三:Calendar.WEDNESDAY=4

星期四:Calendar.THURSDAY=5

星期五:Calendar.FRIDAY=6

星期六:Calendar.SATURDAY=7

1.1、常量小结:

一般使用常量值进行赋值,赋值时,week 与 month 是要注意的,week 需要指定 setFirstDayOfWeek , 然而,月份则需要加减 1,赋值时一般采用年、月、日、时、分、秒,分别为:Calendar.Year、Calendar.Month、Calendar.Day_of_Month、Calendar.Hour_of_day、Calendar.Minute、Calendar.Second。

2、取值方法


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar cal = Calendar.getInstance();

System.out.println(cal.get(Calendar.DATE));//---当前日期

System.out.println(cal.getMinimum(Calendar.DATE));//---当前日期最小值

System.out.println(cal.getMaximum(Calendar.DATE));//---当前日期最大值

2.1、取值小结

获取最大值和最小值是最常用的方法,get中的常量可以放置Year、Month、Day等常量。

时间的换算为一小时等于60分钟等于3600秒等于3600000毫秒。

3、赋值方法


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, 2019);//---设置年份

cal.set(Calendar.MONTH, 9);//---设置月份

cal.set(2019, 7, 30, 13, 13, 13);//---设置年月日时分秒

System.out.println(cal.get(Calendar.YEAR)+"|"+(Calendar.MONTH-1));

System.out.println(sdf.format(cal.getTime()));

打印

2019|1

2019-08-30

3.1、赋值小结

第一种方法需要对每个(field)进行赋值,代码的重复较大,第二种方法分别对字段(field)进行赋值效率较高。

4、计算


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Calendar cal = Calendar.getInstance();

cal.add(Calendar.MONTH, -1);

System.out.println(cal.get(Calendar.YEAR));

4.1、计算小结

Add方法是根据日历规则,为给定日历字段添加或者减去指定的事件,对于add方法使用 XX_OF_XX 的field进行加减计算效果更佳,而且计算准确。 对于月份如果当前为8-31,那么,加一个月的话就是9-30,这个才是真正的准确。

5、日历混合使用

5.1、获取指定年月的最后一天


public static void getLastDayOfMonth(int year,int month) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, year);

cal.set(Calendar.MONTH, month);

cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));

System.out.println(sdf.format(cal.getTime()));

}

5.2、获取当天的开始时间和结束时间


public void getThisToday(){

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Calendar cal = Calendar.getInstance();

cal.set(Calendar.HOUR_OF_DAY,0);

cal.set(Calendar.MINUTE, 0);

cal.set(Calendar.SECOND,0);

String start = sdf.format(cal.getTime());

cal.set(Calendar.HOUR_OF_DAY,23);

cal.set(Calendar.MINUTE, 59);

cal.set(Calendar.SECOND,59);

String end = sdf.format(cal.getTime());

System.out.println(start+"|"+end);

}

5.3、获取一个星期的开始结束时间


public static void getThisWeekDate(){

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Calendar ca = Calendar.getInstance();

ca.setFirstDayOfWeek(Calendar.MONDAY);

ca.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);

ca.set(ca.get(Calendar.YEAR), ca.get(Calendar.MONTH),ca.get(Calendar.DATE),23,59,59);

String end = sdf.format(ca.getTime());

ca.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

ca.set(Calendar.HOUR_OF_DAY,0);

ca.set(Calendar.MINUTE, 0);

ca.set(Calendar.SECOND,0);

String start = sdf.format(ca.getTime());

System.out.println(start+"|"+end);

}

原文地址:https://www.cnblogs.com/w-king/p/12222405.html

时间: 2024-10-10 11:03:42

Java.util.Calendar类简单介绍的相关文章

JAVA学习--Calendar 类的应用

Calendar 类的应用 Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理. java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

Java Calendar类简单用法

我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3832307.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 初始化 Calendar calendar = new GregorianCalendar(); set方法 calendar.set(Calendar.YEAR, year); get方法 int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

Java API —— Calendar类

1.Calendar类概述  Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法. 2.成员方法      public static Calendar getInstance():初始化,返回子类对象 public int get(int field):返回给定日历字段的值 public void add(int field,int am

java.util.Calendar简介

java.util.Calendar简介 一般写为:import java.util.Calendar;在开头 然后在中间写上, Calendar cal = Calendar.getInstance(); int year=cal.get(Calendar.YEAR); int month=cal.get(Calendar.MONTH);就可以了: Calendar是一个抽象类,我们无法直接实例化它,它有一个具体子类实体类java.util.GregorianCalendar,这个类实现的就是

java.util.Properties类

Properties类很常用么,几乎每个项目,从j2se到j2ee每个项目都没离开过他,就算是jsp+servlet+jdbc的东西,jdbc的配置信息也是写Properties,国际化也是Properties,cdn也是Properties,memcached也是 Properties.总之java.utils.*无所不用,不所不在.. 小记下Properties: java.util.Properties是对properties这类配置文件的映射.支持key-value类型和xml类型两种.

模拟java.util.Collection一些简单的用法

/* 需求:模拟java.util.Collection一些简单的用法! 注意:java虚拟机中并没有泛型类型的对象.泛型是通过编译器执行一个被称为类型擦除的前段转换来实现的. 1)用泛型的原生类型替代泛型. 原生类型是泛型中去掉尖括号及其中的类型参数的类或接口.泛型中所有对类型变量的引用都替换为类型变量的最近上限类型, 如对于Cage<T extends Animal>, T的引用将用Animal替换,而对于Cage<T>, T 的引用将用Object替换. 2) */ inte

java.util.Properties类 学习笔记

学习目标: 1.认识properties文件,理解其含义,会正确创建properties文件. 2.会使用java.util.Properties类来操作properties文件. 3.掌握相对路径,能正确书写一个properties文件的相对路径. 一.认识properties文件 1.properties文件是一个文本文件 2.properties文件的语法有两种,一种是注释,一种属性配置. 注    释:前面加上#号 属性配置:以“键=值”的方式书写一个属性的配置信息. 3.propert

软件入门的知识之程序设计语言Java和C#的简单介绍和对比[图]

软件入门的知识之程序设计语言Java和C#的简单介绍和对比[图]:前言:要做软件就必然会涉及到程序设计语言,它是什么?有哪些特点?又有哪几部分组成的呢?在这里我们为大家做了一个总结,希望可以通过这些内容让大家对于程序设计语言有一个大概的认识.基本概念:1.低级/高级计算机的硬件只可以识别由1.0组成的机器指令程序,所以机器指令是最基本的计算机语言.由于机器指令是由特定的计算机系统所固有的.面向机器的语言,所以使用机器语言进行程序设计,效率低.可读性差.难以理解,而且也不便修改和维护.后来出现了由

Java中数组操作 java.util.Arrays 类常用方法的使用

任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的.下面介绍一下Arrays类最常用的几个方法. 1.  数组排序 Arrays工具类提供了一个sort方法,只需要一行代码即可完成排序功能. 2.  数组转换为字符串 Arrays提供了一个toString方法,可以直接把一个数组转换为字符串,这样可以方便观察数组里的元素. //来源:公众号[时光与