收藏 分销(赏)

java实现各种关于时间的处理.doc

上传人:仙人****88 文档编号:11890803 上传时间:2025-08-18 格式:DOC 页数:9 大小:68KB 下载积分:10 金币
下载 相关 举报
java实现各种关于时间的处理.doc_第1页
第1页 / 共9页
java实现各种关于时间的处理.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
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 block e.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 block e.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 block e.printStackTrace(); return null; } } /** * 6.判断当前日期是星期几 * @param pTime * 修要判断的时间<br> * @return dayForWeek 判断结果<br> * @Exception 抛出异常<br> */ 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; else return 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早则返回null if(getDaysBetweenDates(start,end)>=0) { Vector<String> v = new Vector<String>(); 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 String[v.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); String date = sDateFormat.format(dt); int onlineDay = 0; try { onlineDay = getDayForWeek(date); date = getWeekName(onlineDay); } catch (Exception e) { */ /** *获取指定时间段的所有日期 *(张丹使用的方法) *calendarType * 1则代表的是对年份操作 * 2是对月份操作 * 3是对星期操作 * 5是对日期操作 * 11是对小时操作 * 12是对分钟操作 * 13是对秒操作 * 14是对毫秒操作。 * @param start * @param end * @param calendarType * @return */ public static Date[] getDateArrays(Date start, Date end, int calendarType) { ArrayList ret = new ArrayList(); Calendar calendar = Calendar.getInstance(); calendar.setTime(start); Date tmpDate = calendar.getTime(); long endTime = end.getTime(); while (tmpDate.before(end) || tmpDate.getTime() == endTime) { ret.add(calendar.getTime()); calendar.add(calendarType, 1); tmpDate = calendar.getTime(); } Date[] dates = new Date[ret.size()]; return (Date[]) ret.toArray(dates); } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服