本文共 3786 字,大约阅读时间需要 12 分钟。
Date 类表示日期和时间,提供操纵日期和时间各组成部分的方法,最佳应用之一就是获取系统当前时间。
Date类的构造方法:
Date() —— 使用系统日期创建 Date对象(常用) Date(int y, int m, int d) —— 使用指定的年月日创建Date对象,但是因为有错误所以方法已过时 Date(long dt) —— 使用自 1970 年 1 月 1 日以后的指定毫秒数创建 Date对象(不常用)Date类的常用方法:
after(Date d) —— 判断此日期是否在指定日期之后,返回一个布尔值 before(Date d) —— 判断此日期是否在指定日期之前,返回一个布尔值 getYear()、getMonth() … —— 获得当前实例的年份或其他信息,已过时 setYear()、setMonth() … —— 设置当前实例的年份或其他信息,已过时 toString() —— 把对象转换为String形式Calendar为日历类(抽象类)所以要这么实例化:Calendar c = Calendar . getInstance();
Calendar类的常用方法:
after(Calendar c) —— 判断此日期是否在指定日期之后,返回一个布尔值 before(Calendar c) —— 判断此日期是否在指定日期之前,返回一个布尔值 set(Calendar.Year , 2020) —— 设置该对象指定时间类型的值 get(Calendar.Year) —— 得到指定对象的指定时间类型的值 add(Calendar.Year, int val) —— 指定对象的指定时间类型进行值操作,val为正是增加,val为负是减少 toString() —— 把对象转换为String形式GregorianCalendar标准日历类,GregorianCalendar是Calendar的实现类,通常我们使用GregorianCalendar进行一些日期的处理。
GregorianCalendar类的构造方法:
GregorianCalendar() —— 用当前时间创建 GregorianCalendar(int Y, int M, int D) —— 用指定年月日创建 GregorianCalendar(int Y, int M, int D, int H, int MI) —— 用指定年月日时分创建 GregorianCalendar(int Y, int M, int D, int H, int MI,int S) —— 用指定年月日时分秒创建GregorianCalendar类的常用方法:
Calendar日历类能使用的方法GregorianCalendar类基本上都能用,还多了个 isLeapYear(); —— 判断是否为闰年的方法可以格式化日期,得到想要的格式,实例化:new SimpleDateFormat(yyyy-MM-dd hh:mm:ss);
SimpleDateFormat类的常用方法:
SimpleDateFormat(“y”).format(date) —— 返回对应的时间格式字符串,这个例子就是返回一个四位数年份 SimpleDateFormat(“yyyy-MM-dd”).parse(String str) —— 将str对象返回为Date对象(str必须是指定的当前实例的日期格式) 必须练习的例子(万年历): 当然万年历就是说一说,这里只展示后10年的日历怎么编写,弄懂之后想改成几年就几年,当时备注已经写得很清楚了相信大家能看懂。import java.util.Calendar;import java.util.GregorianCalendar;// util包内的日历类测试,做日历public class Work20_datetestRili { public static void main(String[] args) { GregorianCalendar gc1 = new GregorianCalendar(2020,0,1); // 设定从20年之后十年的日历 GregorianCalendar gc = new GregorianCalendar(); // 实例化现在的日期 for(int i = 0 ; i < 10 ; i++) { System.out.println("<-----------"+ gc1.get(Calendar.YEAR) + "年" +"----------->"); // 输出循环的年份 for(int j = 0 ; j < 12 ; j++) { int today = gc.get(Calendar.DATE); // 用日历的get方法获得现在的日子 int month = gc.get(Calendar.MONTH); // 用日历的get方法获得现在的月份 int year = gc.get(Calendar.YEAR); // 用日历的get方法获得现在的年份 int month1 = gc1.get(Calendar.MONTH); // 用日历的get方法获得循环的月份 if(gc1.get(Calendar.YEAR) == year && gc1.get(Calendar.MONTH) == month) { // 如果是今年的这个月那么就输出一行* System.out.println("**********"+ gc1.get(Calendar.YEAR) + "年" + (gc1.get(Calendar.MONTH) + 1)+ "月" +"**********"); } else { System.out.println("=========="+ gc1.get(Calendar.YEAR) + "年" + (gc1.get(Calendar.MONTH) + 1)+ "月" +"=========="); } System.out.println(" 天 一 二 三 四 五 六"); for(int x = 0; x < gc1.get(Calendar.DAY_OF_WEEK) - 1; x++) { System.out.print(" "); // 由于第10行设定日历的当前日期为一号,所以此处判断当月的一号是这周的第几天,然后再给前面输入空格 } while(month1 == gc1.get(Calendar.MONTH)) { int day = gc1.get(Calendar.DATE); if(day < 10) { System.out.print(" "); // 当日期为单数时再给前面输入一个空格 } System.out.print(" "+day); // 输出当前的第33行循环给定的日子 if(gc1.get(Calendar.YEAR) == year && gc1.get(Calendar.MONTH) == month && day == today) { System.out.print("*"); // 如果日子循环到今天则输出个* }else { System.out.print(" "); // 不是今天就输出个空格 } if(gc1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.println(); // 如果日子循环到周六再换个行 } gc1.add(Calendar.DATE, 1); // 循环日期再自加一 } System.out.println(); System.out.println(); } } }}
相关思维导图:
如果大家还不理解数据库的索引的话可以看下我昨天的帖子,链接如下:
这是越跑越慢出汗越来越多啊。。。但是有效果,5斤已经下去了
转载地址:http://unalf.baihongyu.com/