Calendar类简介

Calendar类简介Calendar 类简介 Calendar 是 javautil 包下的一个工具类 提供了很方便的不同日期格式的处理 啥也不说了 直接撸代码 publicstatic String args System out println Calendar 无参构造 Cal

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_MONTH System.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); } 

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

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); } } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201498.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午9:15
下一篇 2026年3月20日 上午9:16


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号