Calendar类简介

Calendar是java util包下的一个工具类,提供了很方便的不同日期格式的处理。啥也不说了,直接撸代码:

public static void main(String[] args) {System.out.println("------------Calendar无参构造------------");//Calendar对象,不传参数,默认为当前日期Calendar calendar =new GregorianCalendar();//获取当前年份System.out.println(calendar.get(Calendar.YEAR));//获取当前月份 从0开始,0代表一月,1代表二月,以此类推System.out.println(calendar.get(Calendar.MONTH));//获取当前日期 也可以使用DAY_OF_MONTHSystem.out.println(calendar.get(Calendar.DATE));//获取当前时 24小时进制System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//获取当前分System.out.println(calendar.get(Calendar.MINUTE));//获取当前秒System.out.println(calendar.get(Calendar.SECOND));//获取今天是这个月的第几个星期System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));//获取今天是星期几  1表示星期天,2表示星期一,以此类推System.out.println(calendar.get(Calendar.DAY_OF_WEEK));System.out.println("------------Calendar有参构造------------");/*** 有参构造 分别代表年月日时分秒,写法简单明了,很符合我们人类的思维* 注意月份的设置是从0开始的,这里设置的是月份是6,实际是设置了7月份*/calendar =new GregorianCalendar(2019, 6, 14, 16, 15,30);/*** 除了在构造方法直接设置之外,也可以通过set方法设置* 第一个参数表示设置的参数类型,第二个表示具体值*/calendar.set(Calendar.YEAR, 2000);calendar.set(Calendar.MONTH, 0);calendar.set(Calendar.DATE, 20);//...System.out.println("------------Calendar和Date转换------------");Date now = calendar.getTime();calendar.setTime(now);System.out.println("------------Calendar日期计算以及判断------------");calendar = new GregorianCalendar();Calendar calendar2 = new GregorianCalendar();calendar2.set(Calendar.YEAR, 2800);//是否在某个时间(calendar2)之后System.out.println(calendar.after(calendar2));//是否在某个时间(calendar2)之前System.out.println(calendar.before(calendar2));//增加多少年年,月日以及时分秒同理calendar.add(Calendar.YEAR, -10);}

由上可见Calendar还是很好用的,具体的需求可自行封装相应的工具类。
简介简介,就到这里吧~

最后,附上一个日期工具类

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;/*** 日期工具类*/
public class DateUtils {public static final String DAFAULT_DATE_FORMAT = "yyyy-M-d";public static final String DATE_FORMAT = "yyyy-MM-dd";public static final String DAFAULT_DATETIME_FORMAT = "yyyy-M-d HH:mm:ss";public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";public static final String DAFAULT_TIME_FORMAT = "HH:mm:ss";/*** 默认构造方法*/private DateUtils() {}/*** 当前时间** @return date*/public static Date currentDate() {return Calendar.getInstance().getTime();}/*** 得到年** @param c* @return*/public static int getYear(Calendar c) {if (c != null) {return c.get(Calendar.YEAR);} else {return Calendar.getInstance().get(Calendar.YEAR);}}/*** 得到月份* 注意,这里的月份依然是从0开始的** @param c* @return*/public static int getMonth(Calendar c) {if (c != null) {return c.get(Calendar.MONTH) + 1;} else {return Calendar.getInstance().get(Calendar.MONTH) + 1;}}/*** 得到日期** @param c* @return*/public static int getDate(Calendar c) {if (c != null) {return c.get(Calendar.DATE);} else {return Calendar.getInstance().get(Calendar.DATE);}}/*** 得到星期** @param c* @return*/public static int getDay(Calendar c) {if (c != null) {return c.get(Calendar.DAY_OF_WEEK);} else {return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);}}/*** 得到小时** @param c* @return*/public static int getHour(Calendar c) {if (c != null) {return c.get(Calendar.HOUR_OF_DAY);} else {return Calendar.getInstance().get(Calendar.HOUR_OF_DAY);}}/*** 得到分钟** @param c* @return*/public static int getMinute(Calendar c) {if (c != null) {return c.get(Calendar.MINUTE);} else {return Calendar.getInstance().get(Calendar.MINUTE);}}/*** 得到秒** @param c* @return*/public static int getSecond(Calendar c) {if (c != null) {return c.get(Calendar.SECOND);} else {return Calendar.getInstance().get(Calendar.SECOND);}}/*** 得到指定或者当前时间前n天的Calendar** @param c* @param n* @return*/public static Calendar beforeNDays(Calendar c, int n) {//偏移量,给定n天的毫秒数long offset = n * 24 * 60 * 60 * 1000;Calendar calendar = null;if (c != null) {calendar = c;} else {calendar = Calendar.getInstance();}calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);return calendar;}/*** 得到指定或者当前时间后n天的Calendar** @param c* @param n* @return*/public static Calendar afterNDays(Calendar c, int n) {//偏移量,给定n天的毫秒数long offset = n * 24 * 60 * 60 * 1000;Calendar calendar = null;if (c != null) {calendar = c;} else {calendar = Calendar.getInstance();}calendar.setTimeInMillis(calendar.getTimeInMillis() + offset);return calendar;}/*** 指定日期加月份** @param date      指定日期* @param addMonths 要加的月份数* @return Date 计算后的日期*/public static Date addMonths(Date date, int addMonths) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MONTH, addMonths);return calendar.getTime();}/*** 当前日期加月份** @param addMonths 要加的月份数* @return Date 计算后的日期*/public static Date addMonths(int addMonths) {return addMonths(new Date(), addMonths);}/*** 指定日期加天** @param date    指定日期* @param addDays 要加的天数* @return Date 计算后的日期*/public static Date addDays(Date date, int addDays) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DATE, addDays);return calendar.getTime();}/*** 当前日期加天** @param addDays 要加的天数* @return Date 计算后的日期*/public static Date addDays(int addDays) {return addDays(new Date(), addDays);}/*** 指定日期加小时** @param date     指定日期* @param addHours 要加的小时数* @return Date 计算后的日期*/public static Date addHours(Date date, int addHours) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.HOUR, addHours);return calendar.getTime();}/*** 当前日期加小时** @param addHours 要加的小时数* @return Date 计算后的日期*/public static Date addHours(int addHours) {return addHours(new Date(), addHours);}/*** 指定日期加分** @param date       指定日期* @param addMinutes 要加的分数* @return Date 计算后的日期*/public static Date addMinutes(Date date, int addMinutes) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MINUTE, addMinutes);return calendar.getTime();}/*** 当前日期加分** @param addMinutes 要加的分数* @return Date 计算后的日期*/public static Date addMinutes(int addMinutes) {return addMinutes(new Date(), addMinutes);}/*** 指定日期加秒** @param date       指定日期* @param addSeconds 要加的秒数* @return Date 计算后的日期*/public static Date addSeconds(Date date, int addSeconds) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.SECOND, addSeconds);return calendar.getTime();}/*** 当前日期加秒** @param addSeconds 要加的秒数* @return Date 计算后的日期*/public static Date addSeconds(int addSeconds) {return addSeconds(new Date(), addSeconds);}/*** 昨天** @param c* @return*/public static Calendar yesterday(Calendar c) {long offset = 1 * 24 * 60 * 60 * 1000;Calendar calendar = null;if (c != null) {calendar = c;} else {calendar = Calendar.getInstance();}calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);return calendar;}/*** 明天** @param c* @return*/public static Calendar tomorrow(Calendar c) {long offset = 1 * 24 * 60 * 60 * 1000;Calendar calendar = null;if (c != null) {calendar = c;} else {calendar = Calendar.getInstance();}calendar.setTimeInMillis(calendar.getTimeInMillis() + offset);return calendar;}/*** 得到指定或者当前时间前offset毫秒的Calendar** @param c* @param offset* @return*/public static Calendar before(Calendar c, long offset) {Calendar calendar = null;if (c != null) {calendar = c;} else {calendar = Calendar.getInstance();}calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);return calendar;}/*** 得到指定或者当前时间前offset毫秒的Calendar** @param c* @param offset* @return*/public static Calendar after(Calendar c, long offset) {Calendar calendar = null;if (c != null) {calendar = c;} else {calendar = Calendar.getInstance();}calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);return calendar;}/*** 日期格式化** @param c* @param pattern* @return*/public static String format(Calendar c, String pattern) {Calendar calendar = null;if (c != null) {calendar = c;} else {calendar = Calendar.getInstance();}if (pattern == null || pattern.equals("")) {pattern = DATETIME_FORMAT;}SimpleDateFormat sdf = new SimpleDateFormat(pattern);return sdf.format(calendar.getTime());}/*** 日期格式化** @param date    日期* @param pattern 格式* @return String 格式化字符串*/public static String format(Date date, String pattern) {Date tempDate = null;if (date != null) {tempDate = date;} else {tempDate = Calendar.getInstance().getTime();}if (pattern == null || pattern.equals("")) {pattern = DATETIME_FORMAT;}SimpleDateFormat sdf = new SimpleDateFormat(pattern);return sdf.format(tempDate);}/*** Date类型转换到Calendar类型** @param d* @return*/public static Calendar date2Calendar(Date d) {Calendar c = Calendar.getInstance();c.setTime(d);return c;}/*** Calendar类型转换到Date类型** @param c* @return*/public static Date calendar2Date(Calendar c) {return c.getTime();}/*** Date类型转换到Timestamp类型** @param d* @return*/public static Timestamp date2Timestamp(Date d) {return new Timestamp(d.getTime());}/*** Calendar类型转换到Timestamp类型** @param c* @return*/public static Timestamp calendar2Timestamp(Calendar c) {return new Timestamp(c.getTimeInMillis());}/*** Timestamp类型转换到Calendar类型** @param ts* @return*/public static Calendar timestamp2Calendar(Timestamp ts) {Calendar c = Calendar.getInstance();c.setTime(ts);return c;}/*** 得到当前时间的字符串表示* 格式2010-02-02 12:12:12** @return*/public static String getTimeString() {return format(Calendar.getInstance(), DATETIME_FORMAT);}/*** 标准日期格式字符串解析成Calendar对象** @param s* @return*/public static Calendar pars2Calender(String s) {Timestamp ts = Timestamp.valueOf(s);return timestamp2Calendar(ts);}}

Calendar类简介相关推荐

  1. 【Java】Date类和Calendar类必知必会

    Date类简介 Date 类: java.util.Date Date 类表示指定的时间信息,可以精确到毫秒 不支持国际化 该类的许多方法已过时 获取当前系统时间: new Date(); 其实这个构 ...

  2. Date类 和 Calendar类

    Date类 简介 日期类,用于操作时间相关信息 构造方法 Date() 构造一个日期对象,当前系统时间,精确到毫秒 //测试空参构造,采用当前操作系统的默认时间 Date date1 = new Da ...

  3. Calendar类常用方法 日期间的转换 set方法有巨坑

           今天发现项目的工具类方法有个bug,而且还能迷惑你的bug,刚开始也是很迷惑,因为这个bug之前出现过,但是过了两天就自己好了,今天又出现了,哦对,今天是 2017年3月31日,之所 ...

  4. java Date 和 Calendar类 万字详解(通俗易懂)

    Date类介绍 Date类构造器 Date类使用 关于SimpleDateFormat类 Date类对象的格式化 构造Date对象的补充 Date类对象成员方法 Calendar类介绍及使用 字段演示 ...

  5. 正则表达式、常用类(Pattern类、Matcher类、Math类、System类、Random类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类)

    JAVA学习第十六天-正则表达式.常用类(Pattern类.Matcher类.Math类.System类.Random类.BigDecimal类.Date类.SimpleDateFormat类.Cal ...

  6. Java学习笔记——Calendar类

    Java中的日期类主要包括:Date类和Calendar类,本文中将对Calendar类进行讲解. 一.Calendar类的简介 Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,只需 ...

  7. Calendar类使用点

    Calendar类使用点 简介 方法 输出指定日期的前一个月的每一天 简介 1.Calendar是抽象类,创建实例时不能用new,而是使用Calendar.getInstance(); 2.Date ...

  8. Calendar类要点、易错点Calendar中的DATE 和 DAY_OF_MONTH 和 DAY_OF_YEAR

    Calendar类要点.易错点 简介: 用于日期的计算. 是一个抽象类,得用它的静态方法getInstance()获取(它的子类)实例.(会根据地区的不同创建当地使用的日历) 将年月日等都存在了它的一 ...

  9. DriverManager 驱动管理器类简介 JDBC简介(三)

    驱动程序管理器是负责管理驱动程序的,驱动注册以后,会保存在DriverManager中的已注册列表中 后续的处理就可以对这个列表进行操作 简言之,驱动管理器,就是字面含义,主要负责就是管理 驱动 概述 ...

最新文章

  1. python3创建多线程的几种方法
  2. Python: 没有switch-case语句
  3. 深度干货 | 多维分析中的 UV 与 PV
  4. ionic angularJS input 相关指令 以及定时器 的使用
  5. 《掌握需求过程》阅读笔记05
  6. leetcode122. 买卖股票的最佳时机 II
  7. Ubuntu20.04配置Java环境
  8. 算法中各种距离的介绍
  9. 虚拟化安全:瑞星的下一个战场
  10. axios上传图片到php报500,vue项目中使用axios上传图片等文件
  11. 共享内存、消息队列、信号量之ipcs命令详解
  12. java fri星期转_Java日期时间以及日期相互转换
  13. 计算机二级C语言题库(60套真题+刷题软件)2022年9月份新题第二套
  14. 华为笔试题 字符串解压缩(C语言解法)
  15. LACP模式链路聚合
  16. scl语言用plc脉冲做定时器_scl语言用plc脉冲做定时器_西门子PLC SCL语言开发学习笔记(二)...
  17. Why my APNs push certificate did not work?
  18. 2020年IT技术的发展趋势!
  19. opencv获取设备ID和名称
  20. 携职教育:四川2022年人力资源管理师考试报名通知

热门文章

  1. 如何租用云GPU跑深度学习?AutoDL、恒源云极简高效使用教程
  2. Windows Server 2003 SP2 纯净版
  3. 新手站长如何选择服务器?
  4. java202302java学习笔记第十五天-罗马数字的两种写法2
  5. 合并同一目录下的excel文件
  6. linux 系统挂载移动硬盘,解决移动硬盘插入linux无反应问题
  7. Twinmotion 初学者教程
  8. Apollo开放平台(openapi)
  9. 超详细:实现过程-Linux 环境下的简易聊天室,采用CS模型,实现多客户端之间的稳定数据传输。--注册和登录(但之后会连续更新内容,直至全部实现)
  10. 关于Windows系统激活IIS服务器