时间工具类(一)
来源:互联网 发布: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】
阅读全文
1 0
- 时间工具类(一)
- 【Android工具】时间工具类
- 时间计算工具类
- 时间工具类
- 时间工具类
- java时间工具类
- java 时间工具类
- 时间工具类[DateUtil]
- 时间工具类(DateUtil)
- 时间工具类(DateUtil)
- Java时间工具类
- Java时间工具类
- JS时间工具类
- 日期时间工具类
- PHP时间工具类
- 时间工具类
- 时间工具类
- 时间处理工具类
- 中国人民银行的身份认证信息系统存在严重bug
- mysql5.7官网直译SQL语句优化--分组优化
- 什么是shell
- Judge Route Circle
- linux内核-网络报文发送流程
- 时间工具类(一)
- 函数交换,通过指针访问地址
- 神经网络——梯度下降&反向传播
- ldconfig提示is not a symbolic link警告的去除方法
- 《JAVA编程思想》学习笔记-JAVA存储位置说明
- 构造型模式
- android开源图表库MPAndroidChart
- Ubuntu16.04 MatConvNet-1.0-beta25 Matlab2017a GPU cuDNN编译
- 一个数组中,只有两个数字出现了一次~