[java]日期工具类-DateUtil
来源:互联网 发布:tpp ttip 知乎 编辑:程序博客网 时间:2024/05/17 10:55
package com.coracle.worklog.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;/** * 日期工具类 * Created by lwy on 2017/9/27. */public class DateUtil { private static DateUtil dateUtil; private DateUtil(){ } /** * 获取DateUtil实例 */ public static DateUtil getInstance(){ if(dateUtil==null){ synchronized(DateUtil.class){ if(dateUtil==null){ dateUtil=new DateUtil(); } } } return dateUtil; } /** * 日期转化为对应的格式字符串 * @param date 时间 * @param pattern 格式化的时间格式 * * @return */ public String formatDate(Date date,String pattern){ SimpleDateFormat dateFormat=new SimpleDateFormat(pattern); return dateFormat.format(date); } /** * 字符串转化为对应的日期格式 * @param dateStr 时间字符串 * @param format 格式化的时间格式 * @return */ public Date parseDate(String dateStr,String format) throws ParseException{ SimpleDateFormat dateFormat=new SimpleDateFormat(format); return dateFormat.parse(dateStr); } /** * 根据传入日期,获取当前日期的本周第一天(周一) * @param date * @return */ public Date getWeekHand(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(calendar.DAY_OF_WEEK, calendar.MONDAY); return calendar.getTime(); } /** * 根据传入日期,获取当前日期的本周第一天(周一) * @param date 日期 * @param pattern 要转化的格式 * @return */ public String getWeekHand(Date date,String pattern){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(calendar.DAY_OF_WEEK, calendar.MONDAY); return formatDate(calendar.getTime(),pattern); } /** * 根据传入日期,获取当前日期的本周最后一天(周日) * @param date 日期 * @return */ public Date getWeekLast(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(calendar.DAY_OF_WEEK, calendar.MONDAY); calendar.set(Calendar.DATE, calendar.get(calendar.DATE) + 6); return calendar.getTime(); } /** * 根据传入日期,获取当前日期的本周最后一天(周日) * @param date 日期 * @param pattern 要转化的格式 * @return */ public String getWeekLast(Date date,String pattern){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(calendar.DAY_OF_WEEK, calendar.MONDAY); calendar.set(Calendar.DATE, calendar.get(calendar.DATE) + 6); return formatDate(calendar.getTime(),pattern); } /** * 日期加法 * @param dateStr 时间字符串格式 * @param day 要增加的天数 * @param pattern 时间格式 * @return */ public String addDate(String dateStr,int day,String pattern) throws ParseException{ Date date = parseDate(dateStr, pattern); Calendar calendar=Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)+day); return formatDate(calendar.getTime(),pattern); } /** * 日期加法 * @param date 日期 * @param day 要增加的天数 * @return */ public Date addDate(Date date,int day){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)+day); return calendar.getTime(); } /** * 日期加法 * @param date 日期 * @param day 要增加的天数 * @param pattern 日期格式 * @return */ public String addDate(Date date,int day,String pattern){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)+day); return formatDate(calendar.getTime(),pattern); } /** * 日期减法 * @param dateStr 时间字符串格式 * @param day 要减少的天数 * @param pattern 时间格式 * @return */ public String minusDate(String dateStr,int day,String pattern) throws ParseException{ Date date = parseDate(dateStr,pattern); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)-day); return formatDate(calendar.getTime(),pattern); } /** * 日期减法 * @param date 时间 * @param day 要减少的天数 * @return */ public Date minusDate(Date date,int day) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)-day); return calendar.getTime(); } /** * 日期减法 * @param date 时间 * @param day 要减少的天数 * @return */ public String minusDate(Date date,int day,String pattern) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)-day); return formatDate(calendar.getTime(),pattern); } public String getWeekOfMonth(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH); return String.format(Locale.SIMPLIFIED_CHINESE,"%tb份第%d周",calendar.getTime(),weekOfMonth); } public String getWeekOfMonth(String dateStr,String pattern) throws ParseException{ Calendar calendar = Calendar.getInstance(); calendar.setTime(parseDate(dateStr,pattern)); calendar.setFirstDayOfWeek(Calendar.MONDAY); int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH); return String.format(Locale.SIMPLIFIED_CHINESE,"%tb份第%d周",calendar.getTime(),weekOfMonth); } public static void main(String[] args) { SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd"); try { System.out.println(dateFormat.format(DateUtil.getInstance().getWeekHand(new Date()))); System.out.println(dateFormat.format(DateUtil.getInstance().getWeekLast(new Date()))); System.out.println(DateUtil.getInstance().minusDate("2017-09-27",2,"yyyy-MM-dd")); System.out.println( DateUtil.getInstance().addDate("2017-09-27",2,"yyyy-MM-dd")); System.out.println(DateUtil.getInstance().getWeekOfMonth(new Date())); }catch (Exception ex){ ex.printStackTrace(); } }}
阅读全文
0 0
- java日期工具类DateUtil
- java日期工具类DateUtil
- java 日期工具类 DateUtil
- java DateUtil 日期工具类
- java日期工具类DateUtil
- Java DateUtil 日期工具类
- java日期工具类DateUtil
- [java]日期工具类-DateUtil
- java日期工具类DateUtil
- java日期工具-DateUtil
- java 日期处理工具类 DateUtil
- java 日期处理工具类 DateUtil 2
- java日期工具类DateUtil-续一
- java日期工具类DateUtil-续二
- java 日期处理工具类 DateUtil
- java日期工具类DateUtil-续一
- java日期工具类DateUtil-续二
- BaseCode之日期工具类:DateUtil.java
- 二叉树非递归版的后序遍历算法
- 还原SQL Server数据库
- 每日一练(20171025)
- ViewPager+TimerTask实现Gallery画廊效果
- NBSocket
- [java]日期工具类-DateUtil
- (DT系列一)DTS结构及其编译方法
- WordPress主题开发:设置和获取浏览次数
- pomelo(六) 中文FAQ
- ubuntu 安装nvidia 驱动后无法进入桌面(循环进入登录界面 )
- Rust: flat_map,filter_map,for_each
- easyui的datagrid的右侧区域空白及列数横向不能填满
- php获取一个目录下的所有文件全路径---包括子目录---并存放到一维数组
- Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.geoway.mobile.utils