java中的日期处理类总结.doc_第1页
java中的日期处理类总结.doc_第2页
java中的日期处理类总结.doc_第3页
java中的日期处理类总结.doc_第4页
java中的日期处理类总结.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java中的日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类今天花了好大一点时间把java的日期类做了一下整理,哈1、 Date类(该类现在很少用了)l Date类对象的创建: n 创建一个当前时间/默认是创建一个代表系统当前日期的Date对象 Date d = new Date();n 创建一个我们指定的时间的Date对象:下面是使用带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。/创建一个代表2009年6月12号的Date对象Date d1 = new Date(2009-1900, 6-1, 12); (注意参数的设置啊!)l 正确获得一个date对象所包含的信息如: Date d2 = new Date(2009-1900, 6-1, 12); /获得年份 (注意年份要加上1900,这样才是日期对象d2所代表的年份) int year = d2.getYear() + 1900; /获得月份 (注意月份要加1,这样才是日期对象d2所代表的月份) int month = d2.getMonth() + 1; /获得日期 int date = d2.getDate(); /获得小时 int hour = d2.getHours(); /获得分钟 int minute = d2.getMinutes(); /获得秒 int second = d2.getSeconds(); /获得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次类推了) int day = d2.getDay();运行结果:年份:2009月份:6日期:12小时:0 /不设置默认是0分钟:0 /不设置默认是0秒:0 /不设置默认是0星期:5 /09-6-12今天就是星期5,又是一个星期天哦 2、 Calendar类Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些 l Calendar类对象的创建Calendar类是一个抽象类,在实际使用时实现特定的子类的对象。由于Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。 n 创建一个代表系统当前日期的Calendar对象Calendar c = Calendar.getInstance();/默认是当前日期n 创建一个指定日期的Calendar对象使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。/创建一个代表2009年6月12日的Calendar对象Calendar c1 = Calendar.getInstance();c1.set(2009, 6 - 1, 12); l Calendar类对象字段类型 Calendar类中用一下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想Calendar.YEAR年份Calendar.MONTH月份Calendar.DATE日期Calendar.DAY_OF_MONTH日期,和上面的字段意义完全相同Calendar.HOUR12小时制的小时Calendar.HOUR_OF_DAY24小时制的小时Calendar.MINUTE分钟Calendar.SECOND秒Calendar.DAY_OF_WEEK星期几 l Calendar类对象信息的设置与获得n Calendar类对象信息的设置u Set设置如:Calendar c1 = Calendar.getInstance();调用:public final void set(int year,int month,int date)c1.set(2009, 6 - 1, 12);/把Calendar对象c1的年月日分别设这为:2009、6、12利用字段类型设置如果只设定某个字段,例如日期的值,则可以使用如下set方法:调用:public void set(int field,int value)/把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算c1.set(Calendar.DATE,10); /把c1对象代表的年份设置为2008年,其他的所有数值会被重新计算c1.set(Calendar.YEAR,2008); 其他字段属性set的意义以此类推u Add设置Calendar c1 = Calendar.getInstance();/把c1对象的日期加上10,也就是c1所表的日期的10天后的日期,其它所有的数值会被重新计算c1.add(Calendar.DATE, 10); /把c1对象的日期加上10,也就是c1所表的日期的10天前的日期,其它所有的数值会被重新计算c1.add(Calendar.DATE, -10);其他字段属性的add的意义以此类推n Calendar类对象信息的获得Calendar c1 = Calendar.getInstance();/ 获得年份int year = c1.get(Calendar.YEAR);/ 获得月份int month = c1.get(Calendar.MONTH) + 1;/ 获得日期int date = c1.get(Calendar.DATE);/ 获得小时int hour = c1.get(Calendar.HOUR_OF_DAY);/ 获得分钟int minute = c1.get(Calendar.MINUTE);/ 获得秒int second = c1.get(Calendar.SECOND);/ 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)int day = c1.get(Calendar.DAY_OF_WEEK); 3、 GregorianCalendar类GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家使用的标准日历系统。GregorianCalendar类对象的创建GregorianCalendar有自己的构造方法,而其父类Calendar没有公开的构造方法哦。GregorianCalendar() 在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth) 在具有默认语言环境的默认时区内构造一个带有给定日期设置的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) 为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。 创建一个代表当前日期的GregorianCalendar对象GregorianCalendar gc = new GregorianCalendar();/创建一个代表2009年6月12日的GregorianCalendar对象(注意参数设置哦,与其父类是一样的哦,月份要减去1)GregorianCalendar gc = new GregorianCalendar(2009,6-1,12);字段属性什么的都是随其父Calendar了,呵另外:GregorianCalendar有下面一个方法:isLeapYear(int year) 确定给定的年份是否为闰年4、 DateFormat类DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 - 文本)、分析(文本- 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年,1 月 1 日 00:00:00 这一刻开始的毫秒数。 5、 SimpleDateFormat类public class SimpleDateFormat extends DateFormatSimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 - 文本)、分析(文本 - 日期)和规范化。所以本类可以实现:String 到 Date Date到String的互转,如下: SimpleDateFormat对象最常用的就是一下两招了:/注意构造函数中是SimpleDateFormat类解析日期的模式,大小写代表的意义完全不一样哦 SimpleDateFormat df = new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); /日期到字符串的转换 String today = df.format(new Date(); /字符串到日期的转换 Date date = df.parse(2009-06-12 02:06:37); System.out.println(df.format(new Date(); 6、 日期类对象之间的互转l Date类对象与long型时间的互转/将Date类的对象转换为long型时间Date d= new Date();/使用对象的getTime()方法完成long dLong = d.getTime(); /将long型时间转换为Date类的对象long time = 1290876532190L;/使用Date的构造方法完成Date d2 = new Date(time);l Calendar对象和long型时间之间的互转/ 将Calendar对象转换为相对时间Calendar c = Calendar.getInstance();long t1 = c.getTimeInMillis(); / 将相对时间转换为Calendar对象Calendar c1 = Calendar.getInstance();long t = 1252785271098L;c1.setTimeInMillis(t1);l Calendar对象和Date对象之间的互转/ 将Calendar对象转换为相对时间Calendar c = Calendar.getInstance();Date d = c.getTime(); / 将相对时间转换为Calendar对象Calendar c1 = Calendar.getInstance();Date d1 = new Date();/通过setTime()方法后,日历c1所表示的日期就d1的日期c1.setTime(d1); 7、 Ok,利用以上各个类的功能,我们可以很简单的实现一些时间计算的功能哦,呵呵,下面看几个方法:l 判断是否是闰年 /* * 给定一个年份判断该年份是否为闰年 create date:2009-6-10 author:Administrator * * param year * return */ public static boolean isLeapYear(int year) GregorianCalendar calendar = new GregorianCalendar(); return calendar.isLeapYear(year); l 获取当前日期的字符串表示形式 /* * 利用SimpleDateFormat获取当前日期的字符串表示形式 格式:2009-55-05 * * create date:2009-6-5 author:Administrator * * return */ public static String getCurrentDate() / 注意 SimpleDateFormat(yyyy-MM-dd)的参数间隔符号可以随意设置的,如: / yyyy年MM月dd日 返回格式:2009年06月09日 / yyyy-MM-dd 返回格式: 2009-06-09 / SimpleDateFormat dateFormat = new SimpleDateFormat( / yyyy-MM-dd HH:mm:ss); SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd); return dateFormat.format(System.currentTimeMillis(); l 给出任意一个年月日得到该天是星期几 /* * 给出任意一个年月日得到该天是星期几 create date:2009-6-10 author:Administrator * * param date * 参数格式 2009-6-10 * 返回值:0 代表星期日,1代表星期1,2代表星期2,以此类推 */ public static int getWeek(String date) / 注意参数的大小写格式 SimpleDateFormat dateFormat = new SimpleDateFormat(yyyyMMdd); Calendar c = Calendar.getInstance(); try Date d = dateFormat.parse(date); c.setTime(d); catch (ParseException e) return c.get(Calendar.DAY_OF_WEEK)-1; l 获得今天n天以后或者n天以前是那一天 /* * 获得距离今天n天的那一天的日期 create date:2009-6-11 author:Administrator * * param day * return */ public static String getDistanceDay(int day) Calendar calen = Calendar.getInstance(); calen.add(Calendar.DAY_OF_MONTH, day); Date date = calen.getTime(); / 这里也个用SimpleDateFormat的format()进行格式化,然后以字符串形式返回格式化后的date SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd); return dateFormat.format(date); l 获得距离指定日期n天的那一天的日期/* * 获得距离指定日期n天的那一天的日期 create date:2009-6-11 author:Administrator * * param date * 格式:2009-6-11 * param day * return */ public static String getDistanceDay(String date, int day) SimpleDateFormat dateFormat = new SimpleDateFormat(yyyyMMdd); Date d; Calendar c =Calendar.getInstance(); try d = dateFormat.parse(date); c.setTime(d); c.add(Calendar.DATE, day); cat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论