Calendar类_java calendar

Calendar类_java calendarCalendar类简介Calendar是javautil包下的一个工具类,提供了很方便的不同日期格式的处理。啥也不说了,直接撸代码:publicstaticvoidmain(String[]args){System.out.println(“————Calendar无参构造————“);//Cal…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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);

    }

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190110.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 搏一搏 单车变摩托,是时候捣鼓一下家中的小米电视机啦。[通俗易懂]

    搏一搏 单车变摩托,是时候捣鼓一下家中的小米电视机啦。[通俗易懂]事因因为家中有一台小米电视机,但是平时使用起来体验很差(1G内存,8G存储,CPU型号CortexA534核心1.5GHz),如今视频平台很多,Bilibili、爱奇艺、优酷、腾讯视频、芒果TV等平台。很多视频通过小米电视找不到,一部分原因是小米电视机的界面太炫丽,导致家中老人不太会操作,就是我用起来都觉得麻烦。想了一下,实在不行就干脆换系统。后来看到一些文章,可以更换界面,卸载一些不用的软件。当贝桌面,体验了一下。装完后,发现还不错,接近手机清爽的界面。装完主界面如下,系统自带的一些软件

  • Java分布式应用:Java分布式通讯方式

    Java分布式应用:Java分布式通讯方式第一部分Java分布式通讯的方式1.基于消息方式实现系统间通讯a.数据传输部分:TCP/IP、UDP/IPTCP(端口号为23)与UDP(端口号为53)的区别1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证…

  • aircrack和reaver破解路由器PIN码

    aircrack和reaver破解路由器PIN码使用aircrack,寻找附近开启wps的路由器,邪恶……嘻嘻airmon-ng start wlan0airodump-ng mon0CH 11 ][ Elapsed: 36 s ][ 2012-12-18 04:46                                          BSSID              PWR  Beacons    #Data

  • convert命令参数

    convert命令参数-adaptive-blur  自适应的模糊操作,在边缘处降低模糊效果-adaptive-resize采用数据依赖的三角滤波算法进行图像尺寸调整-adaptive-sharpen自适应的锐化操作,在边缘处加强锐化效果-adjoin 连接多张图片到同一张图片中-affine 仿射变换矩阵-alpha对阿尔法通道(透明通道)进行开关等操作-annotate 给…

  • Cover Letter常用范式和模版

    Cover Letter常用范式和模版摘自:https://zhuanlan.zhihu.com/p/26708261;http://muchong.com/html/201401/6920446.html1.什么是Coverletter?CoverLetter,即投稿信,是论文投递时与论文一起发送给编辑的信件,其目的是让编辑在阅读你的论文之前,简单了解你文章的基本情况。Coverletter是编辑对论文的第一印象,也是初步评判你论文是否可以被期刊接收的重要依据(如果编辑看完Coverletter之后一点兴趣也没有,就没有下文了

发表回复

您的电子邮箱地址不会被公开。

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