java实现各种关于时间的处理.doc_第1页
java实现各种关于时间的处理.doc_第2页
java实现各种关于时间的处理.doc_第3页
java实现各种关于时间的处理.doc_第4页
java实现各种关于时间的处理.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Vector;/* *版权归中南大学研究生11级某人所有 * 日期工具类 * 1.将日期转成星期:DateToWeek(String date) * 2.获取当前时间(格式:2013-01-16 09:47:30):getDateTime() * 3.获取当前日期(格式:2013-01-16):getDate() * 4.将时间转成数据库中的格式:dateTimeToDBDateTime(String str) * 5.将日期转成数据库中的格式:dateToDBDateTime(String str) * 6.判断当前日期是星期几:getDayForWeek(String pTime) * 7. 判断当前星期中文名:getWeekName(int week) * 8.把星期转成日期:weekToDate(String weekDay) * 9.将星期转换成数字:weekToNumber(String str) * 10. 获取+i天的日期:getNDayDate(int factor) * 11.今天是星期几:getTodayWeek() * 12.获取指定日期段的所有日期:getDateArrays(String start, String end) * 13.指定一个日期,返回一个afterday之后的日期:getDateAfterintday * 14. 计算两个日期之间的天数:getDaysBetweenDates(String start, String end) */public class DateUtil /* * 1.将日期转成星期 * 返回值格式如:星期一 * 参数的格式:2013-01-14 或2013-1-14 * 根据日期判断是星期几 参数的格式:2013-01-14 或2013-1-14 * * param date * return */public static String DateToWeek(String date) try return getWeekName(getDayForWeek(date); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();return null;/* * 2.获取当前时间 * 返回值的格式:2013-01-16 09:47:30 * return */public static String getDateTime() SimpleDateFormat ft = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);Date dd = new Date();return ft.format(dd);/* *获取当前时间: * 时间格式:20130117185930 * return */public static String getDateTimeString() SimpleDateFormat ft = new SimpleDateFormat(yyyyMMddHHmmss);Date dd = new Date();return ft.format(dd);/* *3. 获取当前日期 * 返回值的格式:2013-01-16 * return */public static String getDate() SimpleDateFormat ft = new SimpleDateFormat(yyyy-MM-dd);Date dd = new Date();return ft.format(dd);/* * 4.将时间转成数据库中的格式 * 将格式为2013-01-15 10:09转成2013-01-15 10:09:00.000 * param str * return */public static String dateTimeToDBDateTime(String str) SimpleDateFormat ft = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss.SSS);try return ft.format(new SimpleDateFormat(yyyy-MM-dd HH:mm).parse(str); catch (ParseException e) / TODO Auto-generated catch blocke.printStackTrace();return null;/* * 5.将日期转成数据库中的格式 * 将格式为2013-01-15转成2013-01-15 00:00:00.000 * param str * return */public static String dateToDBDateTime(String str) SimpleDateFormat ft = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss.SSS);try return ft.format(new SimpleDateFormat(yyyy-MM-dd).parse(str); catch (ParseException e) / TODO Auto-generated catch blocke.printStackTrace();return null;/* * 6.判断当前日期是星期几 * param pTime * 修要判断的时间 * return dayForWeek 判断结果 * Exception 抛出异常 */ public static int getDayForWeek(String pTime) throws Exception SimpleDateFormat format = new SimpleDateFormat(yyyy-MM-dd); Calendar c = Calendar.getInstance(); c.setTime(format.parse(pTime); int dayForWeek = 0; if (c.get(Calendar.DAY_OF_WEEK) = 1) dayForWeek = 7; else dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1; return dayForWeek; /* * 7.判断当前星期中文名 * param week * return */ public static String getWeekName(int week) String weekName = 星期日; switch (week) case 1: weekName = 星期一; break; case 2: weekName = 星期二; break; case 3: weekName = 星期三; break; case 4: weekName = 星期四; break; case 5: weekName = 星期五; break; case 6: weekName = 星期六; break; default: break; return weekName; /* * 8.把星期转成日期 * param weekDay * return */public static String weekToDate(String weekDay) /weekToDate(weekToNumber(星期四)int number=weekToNumber(weekDay);int todayWeek=getTodayWeek();if(number=(todayWeek%7) return getNDayDate(0);else if(number=(todayWeek+1)%7)return getNDayDate(1);else if(number=(todayWeek+2)%7)return getNDayDate(2);else if(number=(todayWeek+3)%7)return getNDayDate(3);else if(number=(todayWeek+4)%7)return getNDayDate(4);else if(number=(todayWeek+5)%7)return getNDayDate(5);else if(number=(todayWeek+6)%7)return getNDayDate(6);return null;/* * 9.将星期转换成数字 * param str * return */private static int weekToNumber(String str)if(str.equalsIgnoreCase(星期一)|str.equalsIgnoreCase(星期1)return 1;else if(str.equalsIgnoreCase(星期二)|str.equalsIgnoreCase(星期2)return 2;else if(str.equalsIgnoreCase(星期三)|str.equalsIgnoreCase(星期3)return 3;else if(str.equalsIgnoreCase(星期四)|str.equalsIgnoreCase(星期4)return 4;else if(str.equalsIgnoreCase(星期五)|str.equalsIgnoreCase(星期5)return 5;else if(str.equalsIgnoreCase(星期六)|str.equalsIgnoreCase(星期6)return 6;else if(str.equalsIgnoreCase(星期日)|str.equalsIgnoreCase(星期7)return 0;elsereturn 8; /* *10. 获取+i天的日期 * param factor * return */private static String getNDayDate(int factor) Date date=new Date();/取时间/System.out.println(date+date);Calendar calendar = new GregorianCalendar();calendar.setTime(date);/calendar.add(calendar.DATE,1);/把日期往后增加一天.整数往后推,负数往前移动calendar.add(calendar.DATE,factor);/把日期往后增加一天.整数往后推,负数往前移动date=calendar.getTime(); /这个时间就是日期往后推一天的结果 /System.out.println(calendar.getTime()+date);SimpleDateFormat formatter = new SimpleDateFormat(yyyy-MM-dd); /设置日期格式 String dateString = formatter.format(date);/System.out.println(dateString+dateString);return dateString;/* *11:今天是星期几 *1:星期一,2:星期二,3:星期三,4:星期四,5:星期五,6:星期六,0:星期日 * return */public static int getTodayWeek() Calendar cal = Calendar.getInstance(); / 创建一个日历对象System.out.println(cal.toString();/System.out.println(cal.get(Calendar.DAY_OF_WEEK) - 1);return (cal.get(Calendar.DAY_OF_WEEK) - 1); /* * 12.获取指定日期段的所有日期 * 参数格式:2013-01-13 * 输出日期格式:2013-01-13 * param start * param end * return */public static String getDateArrays(String start, String end) /start在前,end在后,如果end比start早则返回nullif(getDaysBetweenDates(start,end)=0) Vector v = new Vector();SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd);GregorianCalendar gc1 = new GregorianCalendar();GregorianCalendar gc2 = new GregorianCalendar();try gc1.setTime(sdf.parse(start);gc2.setTime(sdf.parse(end);do GregorianCalendar gc3 = (GregorianCalendar) gc1.clone();v.add(sdf.format(gc3.getTime();gc1.add(Calendar.DAY_OF_MONTH, 1); while (!gc1.after(gc2);return v.toArray(new Stringv.size(); catch (ParseException e) e.printStackTrace();System.out.println(日期格式不符合要求);return null;else System.out.println(开始时间大于结束时间,请重新选择!);return null;/* * 13.指定一个日期,返回一个afterday之后的日期 * param start * param afterday * return */public static Date getDateAfterintday(Date start, int afterday) Calendar calendar = Calendar.getInstance();calendar.setTime(start);calendar.add(5, afterday);/ 5表示操作日期Date d = calendar.getTime();return d;/* * 14. 计算两个日期之间的天数 * 返回值类型int * 若想返回值为整数,小日期在前,大日期在后 * 2013-02-1 2013-01-14 * param start * param end * return */public static int getDaysBetweenDates(String start, String end) long quot = 0;int interval=0;SimpleDateFormat ft = new SimpleDateFormat(yyyy-MM-dd);try Date date1 = ft.parse(end);Date date2 = ft.parse(start);quot = date1.getTime() - date2.getTime();interval = (int)(quot / 1000 / 60 / 60 / 24); catch (ParseException e) e.printStackTrace();System.out.println(interval);return interval; /*public static void main(String args) System.out.println(getDateTimeString(); */ /*/将星期转成日期 public String getWeekNameForDay(int days) SimpleDateFormat sDateFormat = new SimpleDateFormat(yyyy-MM-dd); Date dt = new Date(); dt.setDate(dt.getDate() + days);

温馨提示

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

评论

0/150

提交评论