栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA07

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA07

文章目录
  • ①. Calendar概述初始化
  • ②. Calendar与Date互转
  • ③. Calendar的常量字段
  • ④. Calendar常用方法
  • ⑤. Calendar其他方法

①. Calendar概述初始化
  • ①. Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法

  • ②. public static Calendar getInstance():创建Calendar对象,使用默认时区和环境获得一个日历

②. Calendar与Date互转
  • ①. Calendar转化为Date
	Calendar c2 = Calendar.getInstance();
	// Calendar对象转换成Date对象
	Date c2Date = c2.getTime();// 类似于new Date()
  • ②. Date转化为Calendar
  // 获取日历对象
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(new Date());
  System.out.println(calendar);
③. Calendar的常量字段
常量字段说明
Calendar.ERAERA表示纪元,只能为0或1。0表示BC(“beforeChrist”,即公元前);1表示AD(拉丁语“AnnoDomini”,即公元)
Calendar.YEAR表示年份
Calendar.MONTH表示月份,需要加1,因为0表示1月,1表示2月,以此类推
Calendar.HOUR小时(12小时制)
Calendar.HOUR_OF_DAY一天中第几个小时(24小时制)
Calendar.MINUTE分钟
Calendar.SECOND秒
Calendar.MILLISECOND毫秒
Calendar.DAY_OF_YEAR一年中第几天
DAY_OF_MONTH一月中第几天
DAY_OF_WEEK一周中第几天,注意,周日是1,周一是2,…
Calendar.DATE一月中第几天,同DAY_OF_MONTH的值是一样的
Calendar.DAY_OF_WEEK_IN_MONTH当月内一周中的某天的序号
Calendar.WEEK_OF_YEAR一年中的星期数,即本年中第几个星期
Calendar.WEEK_OF_MONTH当前月中的星期数,即本月中第几个星期
Calendar.DAY_OF_WEEK_IN_MONTH当前月中的第几个星期
Calendar.AM_PMAM_PM是在中午之前还是在中午之后,在中午12点之前返回0,在中午12点(包括12点)之后返回1
Calendar.JANUARY1月
Calendar.FEBRUARY2月
Calendar.MARCH3月
Calendar.APRIL4月
Calendar.MAY5月
Calendar.JUNE6月
Calendar.JULY7月
Calendar.AUGUST8月
Calendar.SEPTEMBER9月
Calendar.OCTOBER10月
Calendar.NOVEMBER11月
Calendar.DECEMBER12月
		// 获取日历对象
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(new Date());
		
		// 获取日期字段值
		System.out.println(calendar.get(Calendar.ERA));// 纪元,公元前还是公元
		System.out.println(calendar.get(Calendar.YEAR));// 年份
		System.out.println(calendar.get(Calendar.MONTH));// 月份,需要加1,因为0表示1月,1表示2月,以此类推
		System.out.println(calendar.get(Calendar.HOUR));// 小时(12小时制)
		System.out.println(calendar.get(Calendar.HOUR_OF_DAY));// 一天中第几个小时(24小时制)
		System.out.println(calendar.get(Calendar.MINUTE));// 分钟
		System.out.println(calendar.get(Calendar.SECOND));// 秒
		System.out.println(calendar.get(Calendar.MILLISECOND));// 毫秒
		System.out.println(calendar.get(Calendar.DAY_OF_YEAR));// 一年中第几天
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));// 一月中第几天
		System.out.println(calendar.get(Calendar.DAY_OF_WEEK));// 一周中第几天,注意,周日是1,周一是2,...
		System.out.println(calendar.get(Calendar.DATE));// 一月中第几天,同DAY_OF_MONTH的值是一样的
		System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));// 当月内一周中的某天的序号
		System.out.println("Calendar.WEEK_OF_YEAR=" + calendar.get(Calendar.WEEK_OF_YEAR));// 一年中的星期数,即本年中第几个星期
		System.out.println("Calendar.WEEK_OF_MONTH=" + calendar.get(Calendar.WEEK_OF_MONTH));// 当前月中的星期数,即本月中第几个星期
		System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));// 当前月中的第几个星期
		System.out.println("Calendar.AM_PM=" + calendar.get(Calendar.AM_PM));// AM_PM是在中午之前还是在中午之后,在中午12点之前返回0,在中午12点(包括12点)之后返回1
		System.out.println(Calendar.JANUARY);// 1月
		System.out.println(Calendar.FEBRUARY);// 2月
		System.out.println(Calendar.MARCH);// 3月
		System.out.println(Calendar.APRIL);// 4月
		System.out.println(Calendar.MAY);// 5月
		System.out.println(Calendar.JUNE);// 6月
		System.out.println(Calendar.JULY);// 7月
		System.out.println(Calendar.AUGUST);// 8月
		System.out.println(Calendar.SEPTEMBER);// 9月
		System.out.println(Calendar.OCTOBER);// 10月
		System.out.println(Calendar.NOVEMBER);// 11月
		System.out.println(Calendar.DECEMBER);// 12月
④. Calendar常用方法
方法解释
int get(int field)用于获取日历字段的值,返回值是int类型,其中field参数的值可以是Calendar.YEAR、Calendar.MONTH等常量字段
void set(int field, int value)将给定的日历字段设置为指定的值
void set(int year, int month, int date)设置Calendar中的年、月、日字段
void set(int year, int month, int date, int hourOfDay, int minute)设置Calendar中的年、月、日、时、分字段
void set(int year, int month, int date, int hourOfDay, int minute, int second)设置Calendar中的年、月、日、时、分、秒字段
void add(int field, int amount)可以对指定的一个日历字段进行整数的偏移,比如在今年的日期基础上加上一年,就是明年这个时候的日期。其中amount可以为负数,可以表示如去年、上个月等。
		// 获取日历对象
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(new Date());
		// 设置日期字段值
		calendar.set(2021, Calendar.JUNE, 3);// 设定指定年月日,其中Calendar.JUNE为5实际上是六月,所以0表示1月,1表示2月,以此类推
		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(calendar.getTime()));
		calendar.set(2021, Calendar.FEBRUARY, 3, 23, 55);// 设置年月日时分
		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(calendar.getTime()));
		calendar.set(2021, Calendar.MARCH, 3, 23, 55, 30);// 设置年月日时分秒
		calendar.set(Calendar.YEAR, 2005);// 单独设置日历字段,设置年份
		calendar.set(Calendar.MONTH, 7);// 单独设置日历字段,设置月份,注意0代表1月
		calendar.set(Calendar.DATE, 11);// 单独设置日历字段,设置天数
		calendar.set(Calendar.HOUR_OF_DAY, 22);// 单独设置日历字段,设置小时
		calendar.set(Calendar.MINUTE, 45);// 单独设置日历字段,设置分钟
		calendar.set(Calendar.SECOND, 30);// 单独设置日历字段,设置秒
		calendar.set(Calendar.MILLISECOND, 235);// 单独设置日历字段,设置毫秒
		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(calendar.getTime()));
		
		// 计算日期字段值,既可以为正数,又可以为负数
		calendar.add(Calendar.YEAR, 2);// 在当前日期的基础上添加年份,后年
		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(calendar.getTime()));
		calendar.add(Calendar.YEAR, -1);// 在当前日期的基础上减去年份,昨年
		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(calendar.getTime()));
		calendar.add(Calendar.MONTH, 1);// 添加月份,下个月
		calendar.add(Calendar.MONTH, -1);// 添加月份,上个月
		calendar.add(Calendar.DATE, 2);// 添加天数,后天
		calendar.add(Calendar.DATE, -1);// 添加天数,昨天
		calendar.add(Calendar.HOUR_OF_DAY, 1);// 添加小时,下一个小时
		calendar.add(Calendar.HOUR_OF_DAY, -1);// 添加小时,上一个小时
		calendar.add(Calendar.MINUTE, 20);// 添加分钟,下20分钟
		calendar.add(Calendar.MINUTE, -20);// 添加分钟,上20分钟
		calendar.add(Calendar.SECOND, 30);// 添加秒数,下30秒
		calendar.add(Calendar.SECOND, -30);// 添加秒数,上30秒
		calendar.add(Calendar.DATE, 7);// 添加周数,即添加7天,下一周
		calendar.add(Calendar.DATE, -7);// 添加周数,上一周
		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(calendar.getTime()));
⑤. Calendar其他方法
方法解释
boolean after(Object when)使用例如:c4.after(c3),判断c4的日期是否在c3的日期之后。传入的参数必须是Calendar对象
boolean before(Object when)使用例如:c3.before(c4),判断c3的日期是否在c4的日期之前。传入的参数必须是Calendar对象
boolean equals(Object obj)使用例如:c3.equals(c4),判断c3的日期是否等于c4所表示的日期。传入的参数必须是Calendar对象
int compareTo(Calendar anotherCalendar)使用例如:c3.compareTo(c4),如果比较c3和c4,如果c3c4则返回1
int getActualMaximum(int field)返回指定日历字段可能具有的最大值,例如:c5.getActualMaximum(Calendar.DAY_OF_MONTH),获取本月最后一天的号数
int getActualMinimum(int field)返回指定日历字段可能具有的最小值,例如:c5.getActualMinimum(Calendar.DAY_OF_MONTH),获取本月第一天的号数
long getTimeInMillis()返回此日历对象所表示的毫秒值
int getFirstDayOfWeek()获取一周的第一天是什么
TimeZone getTimeZone()获取时区
		// 其他方法,如after、before
		Calendar c3 = Calendar.getInstance();
		c3.set(Calendar.YEAR, 2005);
		Calendar c4 = Calendar.getInstance();
		boolean after = c4.after(c3);// 判断c4的日期是否在c3之后
		System.out.println(after);
		boolean before = c3.before(c4);
		System.out.println(before);// 判断c3的日期是否在c4之前
		boolean equals = c3.equals(c4);// 判断c3的日期是否等于c4
		System.out.println(equals);
		int result = c3.compareTo(c4);// 如果比较c3和c4,如果c3c4则返回1
		System.out.println(result);
		
		Calendar c5 = Calendar.getInstance();
		c5.clear();
		c5.set(Calendar.YEAR, 2017);
		c5.set(Calendar.MONTH, 1);
		c5.set(Calendar.DAY_OF_MONTH, 30);
		System.out.println(c5.getTime());
		int lastDay = c5.getActualMaximum(Calendar.DAY_OF_MONTH);// 获取本月最后一天的号数
		int firstDay = c5.getActualMinimum(Calendar.DAY_OF_MONTH);// 获取本月第一天的号数
		System.out.println("本月最后一天:" + lastDay + ", 本月第一天:" + firstDay);
		
		// 获取毫秒数
		long timeInMillis = calendar.getTimeInMillis();// 返回此Calendar的时间值,以毫秒为单位
		int firstDayOfWeek = calendar.getFirstDayOfWeek();// 获取一个星期中的第一天
		System.out.println(firstDayOfWeek);
		TimeZone timeZone = calendar.getTimeZone();// 获取时区
		System.out.println(timeZone.getDisplayName());
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号