博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Date 时间类常用方法(星期一,周日获取)
阅读量:6280 次
发布时间:2019-06-22

本文共 7592 字,大约阅读时间需要 25 分钟。

  hot3.png

package com.excel.jxl.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import org.apache.commons.lang3.time.DateFormatUtils;import org.apache.commons.lang3.time.DateUtils;/** * 时间工具测试类 该类基于commons-lang 包 编写使用例子 方便之后调用 *  * @Title: DateTools.java * @Package com.excel.jxl.util * @Description: TODO(时间工具类 ) *  yangy * @date 2012-9-27 下午02:52:05 */public class DateTools {	/**	 * 判断两个时间是否相同	 * 	 * @param date1	 *            等待比较第一个时间	 * @param date2	 *            等待比较第二个时间	 *  比较结果	 */	public static boolean isSameDay(Date date1, Date date2) {		return DateUtils.isSameDay(date1, date2);	}	/**	 * 比较两个日历类数据是否相同	 * 	 * @param cal1	 *            比较第一个日历类	 * @param cal2	 *            比较第二个日历类	 *  比较结果	 */	public static boolean isSameDay(Calendar cal1, Calendar cal2) {		return DateUtils.isSameDay(cal1, cal2);	}	/**	 * 新增年份	 * 	 * @param date	 *            需要新增时间	 * @param year	 *            增加年份	 *  增加后年份	 */	public static Date addYears(Date date, int year) {		return DateUtils.addYears(date, year);	}	/**	 * 对时间格式进行格式化	 * 	 * @param date	 *            时间类型	 *  yyyy-MM-dd	 */	public static String format(Date date) {		return DateFormatUtils.format(date, DateFormatUtils.ISO_DATE_FORMAT				.getPattern());	}	/**	 * 对时间格式进行格式化	 * 	 * @param date	 *            时间类型	 *  yyyy-MM-dd'T'HH:mm:ss	 */	public static String formatDate(Date date) {		return DateFormatUtils.format(date, DateFormatUtils.ISO_DATETIME_FORMAT				.getPattern());	}	/**	 * 格式化时间	 * 	 * @param date	 *            时间参数	 * @param pattern	 *            格式化参数类型	 *  */	public static String format(Date date, String pattern) {		return DateFormatUtils.format(date, pattern);	}	/**	 * 格式化时间参数	 * 	 * @param date	 *            时间参数	 *  HH:mm:ss	 */	public static String formatTime(Date date) {		return DateFormatUtils.format(date,				DateFormatUtils.ISO_TIME_NO_T_FORMAT.getPattern());	}	/**	 * 增加月份	 * 	 * @param date	 *            传入时间	 * @param month	 *            需要增加月份	 *  增加月份	 */	public static Date addMonths(Date date, int month) {		return DateUtils.addMonths(date, month);	}	/**	 * 增加周	 * 	 * @param date	 *            当前时间	 * @param amount	 *            需要增加周	 *  增加后时间	 */	public static Date addWeeks(Date date, int amount) {		return DateUtils.addWeeks(date, amount);	}	/**	 * 增加天	 * 	 * @param date	 *            当前时间	 * @param amount	 *            需要增加天数	 *  增加后时间	 */	public static Date addDays(Date date, int amount) {		return DateUtils.addDays(date, amount);	}	/**	 * 增加小时	 * 	 * @param date	 *            当前时间	 * @param amount	 *            增加小时数	 *  增加后时间	 */	public static Date addHours(Date date, int amount) {		return DateUtils.addHours(date, amount);	}	/**	 * 增加分钟	 * 	 * @param date	 *            当前时间	 * @param amount	 *            增加分钟数	 *  增加后时间	 */	public static Date addMinutes(Date date, int amount) {		return DateUtils.addHours(date, amount);	}	/**	 * 增加秒	 * 	 * @param date	 *            当前时间	 * @param amount	 *            增加秒数	 *  增加后时间	 */	public static Date addSeconds(Date date, int amount) {		return DateUtils.addSeconds(date, amount);	}	/**	 * 添加毫秒	 * 	 * @param date	 *            当前时间	 * @param amount	 *            增加毫秒	 *  增加后时间	 */	public static Date addMilliseconds(Date date, int amount) {		return DateUtils.addMilliseconds(date, amount);	}	/**	 * 设置年分 修改传入时间年份为amount	 * 	 * @param date	 *            当前时间	 * @param amount	 *            设置年份 传入Int类型 	 *  设置后时间	 */	public static Date setYears(Date date, int amount) {		return DateUtils.setYears(date, amount);	}	/**	 * 设置月份	 * 	 * @param date	 *            当前时间	 * @param amount	 *            设置月份 传入Int类型	 *  设置月份后时间	 */	public static Date setMonths(Date date, int amount) {		return DateUtils.setMonths(date, amount);	}	/**	 * 设置天数 	 * 	 * @param date	 *            当前时间	 * @param amount	 *            设置天数 传入Int类型	 *  设置后时间	 */	public static Date setDays(Date date, int amount) {		return DateUtils.setDays(date, amount);	}	/**	 * 设置小时数 	 * 	 * @param date	 *            当前时间	 * @param amount	 *            设置小时 传入Int类型	 *  设置后时间	 */	public static Date setHours(Date date, int amount) {		return DateUtils.setHours(date, amount);	}	/**	 * 设置分钟	 * 	 * @param date	 *            当前时间	 * @param amount	 *            设置分钟数	 *  设置后时间	 */	public static Date setMinutes(Date date, int amount) {		return DateUtils.setMinutes(date, amount);	}	/**	 * 时间日历类转换	 * 	 * @param date	 *            时间类型	 *  日类类型	 */	public static Calendar toCalendar(Date date) {		Calendar c = Calendar.getInstance();		c.setTime(date);		return c;	}	/**	 * 设置分钟数	 * 	 * @param date	 *            时间类型	 * @param amount	 *            设置分钟数	 *  设置后时间	 */	public static Date round(Date date, int amount) {		return DateUtils.setMinutes(date, amount);	}	/**	 * 获取传入时间的周一	 * 	 * @param date 当前时间	 *  返回传入时间当周星期一	 */	public static Date getNowWeekMonday(Date date) {		Calendar cal = Calendar.getInstance();		cal.setTime(date);				cal.add(Calendar.DAY_OF_MONTH, -1); //解决周日会出现 并到下一周的情况		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);				return cal.getTime();	}		/**	 * 获取传入时间的上周一	 * 	 * @param date 当前时间	 *  返回上周一时间	 */	public static Date getLastWeekMonday(Date date) {		Date a = DateUtils.addDays(date, -1);		Calendar cal = Calendar.getInstance();		cal.setTime(a);		cal.add(Calendar.WEEK_OF_YEAR, -1);// 一周		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);		 		return cal.getTime();	}		/**	 * 获取传入时间下周一	 * @param date 当前时间	 *  返回下周一日期	 */	public static Date	getNextWeekMonday(Date date) {		Date a = DateUtils.addDays(date, -1);		Calendar cal = Calendar.getInstance();		cal.setTime(a);		cal.add(Calendar.WEEK_OF_YEAR, 1);// 一周		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);		 		return cal.getTime();	}		/**	 * 查询当周周日	 * @param date 当前时间 	 *  当周周日	 */	public static Date	getNowWeekSunday(Date date) {		Date a = DateUtils.addDays(date, -1);		Calendar cal = Calendar.getInstance();		cal.setTime(a);		cal.add(Calendar.WEEK_OF_YEAR, 1);// 一周		cal.set(Calendar.DAY_OF_WEEK, 1);		 		return cal.getTime();	}			/**	 * 查询下周周日	 * @param date 当前时间	 *  返回下周周日	 */	public static Date	getNextWeekSunday(Date date) {				Calendar cal = Calendar.getInstance();		cal.setTime(date);		cal.add(Calendar.WEEK_OF_YEAR, 1);// 一周		cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);		 		return cal.getTime();	}		/**	 * 查询上周周日	 * @param date 当前时间	 *  返回上周周日	 */	public static Date	getLastWeekSunday(Date date) {				Date a = DateUtils.addDays(date, -1);		Calendar cal = Calendar.getInstance();		cal.setTime(a);		cal.set(Calendar.DAY_OF_WEEK, 1);		 		return cal.getTime();	}			/**	 * 解析字符串为 时间类型	 * @param date 字符串	 *  时间类型	 * @throws ParseException 解析异常	 */	public static Date format(String date) throws ParseException	{		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");		return format.parse(date);	}			/**	 * 返回当月第一天	 * @param date 当前时间	 *  返回当月第一天	 */	public static Date getNowMonthFirstDay(Date date)	{		return setDays(date,1);	}		/**	 * 测试方法	 * 	 * @param args	 * @throws ParseException 	 */	public static void main(String[] args) throws ParseException {//		 Date date = getMonday(format("2012-9-09"));		//		Date date = getLastSunday(new Date());		Date date = getNowMonthFirstDay(format("2012-9-30"));			 System.out.println(format(date));	}}
 
//获取上月一号 与最后一天
Calendar monthbefor = Calendar.getInstance();                monthbefor.add(Calendar.MONTH, -1);                monthbefor.set(Calendar.DAY_OF_MONTH, 1); 
monthbefor.set(Calendar.DAY_OF_MONTH, monthbefor.getMaximum(Calendar.DAY_OF_MONTH));
 
 
最近项目中需要获取传入时间的当前周一 周日.上周 周一 周日
快这个搞晕掉了 网上的方法大多都有一点问题 或是重复... 总结了一些常用方法 方便下次自己使用...
 

转载于:https://my.oschina.net/luckyi/blog/81995

你可能感兴趣的文章
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>