时间工具类(一)

来源:互联网 发布:java 日志级别 trace 编辑:程序博客网 时间:2024/05/16 13:59

时间工具类

package com.text;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.HashMap;import java.util.Map;/** * 时间工具类 * @author Administrator * */public class DateTools {// 获取当前时间public static Date getDate() {return new Date();}// 获取当前时间的时间戳public static long getDateByTime() {return new Date().getTime();}// 两个日期间隔分钟public static int getDateMinuteSpace(Date start, Date end) {int hour = (int) ((end.getTime() - start.getTime()) / (60 * 1000));return hour;}// 两个日期间隔小时public static int getDateHourSpace(Date start, Date end) {int hour = (int) ((end.getTime() - start.getTime()) / (60 * 60 * 1000));return hour;}// 两个日期间隔天数public static int getDateDaySpace(Date start, Date end) {int day = (int) ((end.getTime() - start.getTime()) / (60 * 60 * 24 * 1000));return day;}// 相差x小时的时间public static Date getDateReduceHour(Date date, long hourCount) {long time = date.getTime() - 3600 * 1000 * hourCount;Date dateTemp = new Date();dateTemp.setTime(time);return dateTemp;}// 获取指定日期,以当前时间天数为零点,经过date参数后的时间public static Date getDate(int date, int hour, int minute, int second,int millisecond) {Calendar calendar = Calendar.getInstance();calendar.add(Calendar.DATE, date);calendar.set(Calendar.HOUR_OF_DAY, hour);calendar.set(Calendar.MINUTE, minute);calendar.set(Calendar.SECOND, second);calendar.set(Calendar.MILLISECOND, millisecond);return calendar.getTime();}// 两个日期的时间差,返回"X天X小时X分X秒"public static String getBetween(Date start, Date end) {long between = (end.getTime() - start.getTime()) / 1000;// 除以1000是为了转换成秒long day = between / (24 * 3600);long hour = between % (24 * 3600) / 3600;long minute = between % 3600 / 60;long second = between % 60 / 60;StringBuilder sb = new StringBuilder();sb.append(day);sb.append("天");sb.append(hour);sb.append("小时");sb.append(minute);sb.append("分");sb.append(second);sb.append("秒");return sb.toString();}// 获取某一天是星期几@SuppressWarnings("static-access")public static String getDateInWeek(Date date) {String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };Calendar calendar = Calendar.getInstance();calendar.setTime(date);int dayIndex = calendar.get(calendar.DAY_OF_WEEK) - calendar.SUNDAY;if (dayIndex < 0) {dayIndex = 0;}return weekDays[dayIndex];}// 获取开始时间,从零点开始public static Date startDateByDay(Date start, int end) {Calendar calendar = Calendar.getInstance();calendar.setTime(start);calendar.add(Calendar.DATE, end);// 今天0,明天1,昨天-1calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);Date date = calendar.getTime();return date;}// 获取结束时间,到零点前public static Date endDateByDay(Date start) {Calendar calendar = Calendar.getInstance();calendar.setTime(start);calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);calendar.set(Calendar.MILLISECOND, 999);Date date = calendar.getTime();return date;}// 获取开始时间,根据参数指定分钟public static Date startDateByHour(Date start, int end) {Calendar calendar = Calendar.getInstance();calendar.setTime(start);calendar.set(Calendar.MINUTE, end);Date date = calendar.getTime();return date;}// 获取结束时间,指定到分钟public static Date endDateByHour(Date end) {Calendar calendar = Calendar.getInstance();calendar.setTime(end);calendar.set(Calendar.MINUTE, 59);Date date = calendar.getTime();return date;}// 根据年份和周得到周的开始和结束日期public static Map<String, Date> getStartEndDateByWeek(int year, int week) {Calendar weekCalendar = new GregorianCalendar();weekCalendar.set(Calendar.YEAR, year);weekCalendar.set(Calendar.WEEK_OF_YEAR, week);weekCalendar.set(Calendar.DAY_OF_WEEK, weekCalendar.getFirstDayOfWeek());Date startDate = weekCalendar.getTime(); // 得到周的开始日期weekCalendar.roll(Calendar.DAY_OF_WEEK, 6);Date endDate = weekCalendar.getTime(); // 得到周的结束日期// 开始日期往前推一天Calendar startCalendar = Calendar.getInstance();startCalendar.setTime(startDate);startCalendar.add(Calendar.DATE, 1);// 明天1,昨天-1startCalendar.set(Calendar.HOUR_OF_DAY, 0);startCalendar.set(Calendar.MINUTE, 0);startCalendar.set(Calendar.SECOND, 0);startCalendar.set(Calendar.MILLISECOND, 0);startDate = startCalendar.getTime();// 结束日期往前推一天Calendar endCalendar = Calendar.getInstance();endCalendar.setTime(endDate);endCalendar.add(Calendar.DATE, 1);// 明天1,昨天-1endCalendar.set(Calendar.HOUR_OF_DAY, 23);endCalendar.set(Calendar.MINUTE, 59);endCalendar.set(Calendar.SECOND, 59);endCalendar.set(Calendar.MILLISECOND, 999);endDate = endCalendar.getTime();Map<String, Date> map = new HashMap<String, Date>();map.put("start", startDate);map.put("end", endDate);return map;}// 根据日期月份,获取月份的开始和结束日期public static Map<String, Date> getMonthDate(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);// 得到前一个月的第一天calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMinimum(Calendar.DAY_OF_MONTH));Date start = calendar.getTime();// 得到前一个月的最后一天calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));Date end = calendar.getTime();Map<String, Date> map = new HashMap<String, Date>();map.put("start", start);map.put("end", end);return map;}}

另:所有的代码都是为了方便我们的工作,从繁琐复杂的循环中,变得轻松简单,有些时候觉得程序员是一个伟大的工作,是帮助的人类生活变得方便但是,如果我们只是把自己的技术知识只是放在自己的小范围内,自己的大脑中,自己的心中,自己的朋友中,其意义何在呢!,希望大家也可以花一点时间写出你的技术,写出你工作的意义,写出一个程序员的精彩。【welcome here :csdn communication center qq群:678470500】



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝吃了螺丝冒怎么办 收割机滚筒皮带轮键槽滚了怎么办 微信界面变小了怎么办 拉杆箱螺丝掉了怎么办 洗衣机应急门锁没有拉绳怎么办? 奔驰glc发动机声音大怎么办 淋膜机模具螺丝拧不动怎么办 一字螺丝滑丝了怎么办 螺丝拧歪卡住了怎么办 车牌螺丝拧歪了怎么办 空心墙打膨胀螺丝打不上怎么办 沉孔内六角螺丝滑丝怎么办 内六角螺丝滑了怎么办? 三色灯不变光了怎么办 卧室灯不变色了怎么办 圆柱齿轮减速机噪音大怎么办 轴与套间隙生锈怎么办 汽车停小区被刮怎么办 下楼梯摔跤了 屁股疼 怎么办 剧烈咳嗽震的肚子疼怎么办 饺子粘在盘子上怎么办 生饺子粘在盘子怎么办 饺子粘在案板上怎么办 饺子冷冻粘起了怎么办 冰箱饺子冻住了怎么办 水饺都冻一块了怎么办 wps卸载了后文件打不开怎么办 六角螺母拧滑了怎么办 梅花内六角螺丝扭滑丝了怎么办 眼镜螺丝滑丝了怎么办 大螺丝拆不下来怎么办 一字螺丝扭不动怎么办 带帽的螺丝拧花怎么办 螺丝拧不出来了怎么办 小六角螺丝滑丝怎么办 螺丝拧不下来了怎么办 固定水龙头的螺母扭不动怎么办 小螺丝帽拧花了怎么办 6角螺丝帽拧圆了怎么办 眼镜螺丝滑扣了怎么办 眼镜的螺丝掉了怎么办