日期操作比较全面得代码
Java 的Date操作保留 测试可以采用junitTest 或者main方法测试验证
public static String formatDate(java.util.Date date) {return formatDateByFormat(date, "yyyy-MM-dd");}public static String formatDateByFormat(java.util.Date date, String format) {String result = "";if (date != null) {try {SimpleDateFormat sdf = new SimpleDateFormat(format);result = sdf.format(date);} catch (Exception ex) {logger.error(ex.getMessage());}}return result;}public static java.util.Date parseDate(java.sql.Date date) {return date;}public static java.sql.Date parseSqlDate(java.util.Date date) {if (date != null) {return new java.sql.Date(date.getTime());} else {return null;}}public static String format(java.util.Date date, String format) {String result = "";try {if (date != null) {java.text.DateFormat df = new java.text.SimpleDateFormat(format);result = df.format(date);}} catch (Exception e) {logger.error(e.getMessage());}return result;}public static String format(java.util.Date date) {if(null!=date){return format(date, "yyyy/MM/dd");}return null;}public static String format1(java.util.Date date) {if(null!=date){return format(date, "yyyy-MM-dd");}return null;}public static int getYear(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.YEAR);}public static int getMonth(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.MONTH) + 1;}public static int getDay(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.DAY_OF_MONTH);}public static int getHour(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.HOUR_OF_DAY);}public static int getMinute(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.MINUTE);}public static int getSecond(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.SECOND);}public static long getMillis(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.getTimeInMillis();}public static int getWeek(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);int dayOfWeek = c.get(java.util.Calendar.DAY_OF_WEEK);dayOfWeek = dayOfWeek - 1;if (dayOfWeek == 0) {dayOfWeek = 7;}return dayOfWeek;}public static String getDate(java.util.Date date) {return format(date, "yyyy/MM/dd");}public static String getDate(java.util.Date date,String formatStr) {return format(date, formatStr);}public static String getTime(java.util.Date date) {return format(date, "HH:mm:ss");}public static String getDateTime(java.util.Date date) {return format(date, "yyyy-MM-dd HH:mm:ss");}/*** 日期月份相加减* @param date 具体的时间* @param month 相加减的月份* @return 处理后的时间*/public static Date addMonth(Date date, int month) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MONTH, month);return calendar.getTime();}/*** 日期相加* @param date Date* @param day int* @return Date*/public static java.util.Date addDate(java.util.Date date, int day) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);return c.getTime();}/*** 日期相减* @param date Date* @param date1 Date* @return int*/public static int diffDate(java.util.Date date, java.util.Date date1) {return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000));}/*** 日期相减(返回秒值)* @param date Date* @param date1 Date* @return int* @author */public static Long diffDateTime(java.util.Date date, java.util.Date date1) {return (Long) ((getMillis(date) - getMillis(date1))/1000);}public static java.util.Date getdate(String date) throws Exception {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");return sdf.parse(date);}public static java.util.Date getdate1(String date) throws Exception {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return sdf.parse(date);}public static java.util.Date getMaxTimeByStringDate(String date) throws Exception {String maxTime = date + " 23:59:59";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return sdf.parse(maxTime);}/*** 获得当前时间* @return* @throws ServiceException */public static Date getCurrentDateTime() throws Exception{Date date=new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String result = DateUtil.getDateTime(date);return sdf.parse(result);}public static String getCurrentDateTimeToStr() throws Exception {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");return sdf.format(getCurrentDateTime());}public static String getCurrentDateTimeToStr2() throws Exception {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return sdf.format(getCurrentDateTime());}public static Long getWmsupdateDateTime() {Calendar cl=Calendar.getInstance();return cl.getTimeInMillis();}public static Integer getLeftSeconds(String date)throws Exception{SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date condition = sdf.parse(date);long n = condition.getTime();long s = sdf.parse(getCurrentDateTimeToStr2()).getTime();
// System.out.println("开始时间:"+date+"-->"+(int)((s-n)/1000));return (int)((s-n)/1000);}/*** 获得时间戳* @return* @throws Exception*/public static String getTime(){Date date=new Date();return String.valueOf(date.getTime());}/** 判断日期格式是否正确 */ public static boolean validateDate(String dateString){//使用正则表达式 测试 字符 符合 dddd-dd-dd 的格式(d表示数字)Pattern p = Pattern.compile("\\d{4}+[-]\\d{2}+[-]\\d{2}+");Matcher m = p.matcher(dateString);if(!m.matches()){ return false;} //得到年月日String[] array = dateString.split("-");int year = Integer.parseInt(array[0]);int month = Integer.parseInt(array[1]);int day = Integer.parseInt(array[2]);if(month<1 || month>12){ return false;}int[] monthLengths = new int[]{0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};if(isLeapYear(year)){monthLengths[2] = 29;}else{monthLengths[2] = 28;}int monthLength = monthLengths[month];if(day<1 || day>monthLength){return false; }return true;}/** 是否是闰年 */public static boolean isLeapYear(int year){return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ;}/*** 将时间格式的字符串,转换为时间* * @param str 时间格式的字符串* @param pattern 转换格式* @return java.util.Date*/public static Date parseToDate(String str, String pattern) {DateFormat df = new SimpleDateFormat(pattern);try {return df.parse(str);} catch (ParseException e) {}return null;} /*** 将时间格式的字符串,转换为时间* * @param str 时间格式的字符串* @param pattern 转换格式* @return java.util.Date*/public static Date parseToDateWithThrowException(String str, String pattern) throws ParseException{DateFormat df = new SimpleDateFormat(pattern);return df.parse(str);} public static Date getLastDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month);cal.set(Calendar.DAY_OF_MONTH, 1);cal.add(Calendar.MONTH, -1);cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH)); return cal.getTime(); } public static Date getFirstDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month);cal.set(Calendar.DAY_OF_MONTH, 1);cal.add(Calendar.MONTH, -1); return cal.getTime(); }public static String getFirstDayOfMonthStr(String yearMonth) {int year = getYear(yearMonth);int month = getMonth(yearMonth);return getFirstDayOfMonthStr(year, month);}private static int getYear(String yearMonth) {return Integer.parseInt(yearMonth.substring(0, 4));//get year}private static int getMonth(String yearMonth) {return Integer.parseInt(yearMonth.substring(4, 6));//get month}public static String getLastDayOfMonthStr(int year, int month) { Calendar cal = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month); cal.set(Calendar.DAY_OF_MONTH,1);cal.add(Calendar.DAY_OF_MONTH,-1); return sdf.format(cal.getTime());}public static String getLastDayOfMonthStr(String yearMonth) { int year = getYear(yearMonth);int month = getMonth(yearMonth);return getLastDayOfMonthStr(year, month);}public static String getFirstDayOfMonthStr(int year, int month) { Calendar cal = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month-1); cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE)); return sdf.format(cal.getTime());} /** * 返回当月最后一天的日期 */ public static Date getLastDayOfMonth(Date date) { Calendar calendar = convert(date); calendar.set(Calendar.DATE, calendar.getMaximum(Calendar.DATE)); return calendar.getTime(); } /** * 返回当月最后一天的日期 */ public static Date getFirstDayOfMonth(Date date) { Calendar calendar = convert(date); calendar.set(Calendar.DATE, calendar.getMinimum(Calendar.DATE)); return calendar.getTime(); } /** * 将日期转换为日历 * @param date 日期 * @return 日历 */ private static Calendar convert(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } public static Date getDayOfThisMonth(int year, int month, int day) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month);cal.set(Calendar.DAY_OF_MONTH, day);cal.add(Calendar.MONTH, -1); return cal.getTime(); }/** * 获得指定日期的前一天 * @param specifiedDay * @return * @throws Exception */ public static String getCurrentDayBefore(Date date,String format) {Calendar c = Calendar.getInstance();c.setTime(date);int day = c.get(Calendar.DATE);c.set(Calendar.DATE, day - 1);String dayBefore = new SimpleDateFormat(format).format(c.getTime());return dayBefore;}/*** 检查日期时间段是否重叠* @param checkDate* @param startDate* @param endDate* @return*/public static boolean checkDateRepeart(Date checkStartDate,Date checkEndtDate,Date startDate,Date endDate){if(checkStartDate.getTime()==startDate.getTime() ||checkStartDate.getTime()==endDate.getTime()){return true;}if(checkEndtDate.getTime()==startDate.getTime() ||checkEndtDate.getTime()==endDate.getTime()){return true;}if(checkStartDate.getTime()>startDate.getTime() && checkStartDate.getTime()<endDate.getTime()){return true;}if(checkEndtDate.getTime()>startDate.getTime() && checkEndtDate.getTime()<endDate.getTime()){return true;}return false;}//得到本月的第一天public static String getMonthFirstDay() {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMinimum(Calendar.DAY_OF_MONTH));SimpleDateFormat firstDay= new SimpleDateFormat("yyyy-MM-dd");return firstDay.format(calendar.getTime());}//得到本月的最后一天public static String getMonthLastDay() {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));SimpleDateFormat lastDay= new SimpleDateFormat("yyyy-MM-dd");return lastDay.format(calendar.getTime());}// 得到上月的第一天public static String getPerMonthFirstDay() {Calendar cal = Calendar.getInstance();// 上个月cal.add(Calendar.MONTH, -1);// 设置为1号,当前日期既为本月第一天cal.set(Calendar.DAY_OF_MONTH, 1);SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");String firstDay = sm.format(cal.getTime());return firstDay;}// 得到上月的最后一天public static String getPerMonthLastDay() {Calendar call = Calendar.getInstance();// 设置上个月最后一天call.set(Calendar.DAY_OF_MONTH, 0);SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");String lastDay = sm.format(call.getTime());return lastDay;}// 得到下个月的第一天public static String getNextMonthFirstDate(String dateStr){SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String nextMonthFirstDate = "";try {Date date = sdf.parse(dateStr);Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, 1);calendar.add(Calendar.MONTH, 1);nextMonthFirstDate = sdf.format(calendar.getTime());} catch (ParseException e) {e.printStackTrace();}return nextMonthFirstDate;}
日期操作比较全面得代码相关推荐
- php日历类 农历,PHP日期操作类代码-农历-阳历转换、闰年、计算天数等
这是一个实用的PHP日期时间操作类,里面包括了公历-农历转换.转换成中文日期格式.计算农历相隔天数.根据阴历年获取生肖.获取阴历月份的天数.获取农历每年的天数.获取闰月.计算阴历日期与正月初一相隔的天 ...
- PHP日期操作类代码-农历-阳历转换、闰年、计算天数等
这是一个实用的PHP日期时间操作类,里面包括了公历-农历转换.转换成中文日期格式.计算农历相隔天数.根据阴历年获取生肖.获取阴历月份的天数.获取农历每年的天数.获取闰月.计算阴历日期与正月初一相隔的天 ...
- Java中的日期操作
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception {SimpleDateFormat sdf = ne ...
- Python之字符串转换为日期、结合时区的日期操作
一.字符串转换为日期 方法一 s = '2019-01-20' print(datetime.strptime(s, '%Y-%m-%d')) # 2019-01-20 00:00:00 方法二 de ...
- 《Python Cookbook 3rd》笔记(3.16):结合时区的日期操作
结合时区的日期操作 问题 你有一个安排在 2012 年 12 月 21 日早上 9:30 的电话会议,地点在芝加哥.而你的朋友在印度的班加罗尔,那么他应该在当地时间几点参加这个会议呢? 解法 对几乎所 ...
- python读取xlsx文件年月日变成数字_python转化excel数字日期为标准日期操作
伙伴遇到一个关于excel导入数据到python中,日期变成数字而不是日期格式的问题.第一反应这个数字应该是excel里面的时间戳类似的,所以我就实验增加一天是不是对应的数字就加1.最后证明了我的想法 ...
- java遍历日期_Java遍历起止日期中间的所有日期操作
传入的起止日期,返回一个泛型为String的集合: private static List dateUtil(Date start, Date end) { List list = new Array ...
- java怎样将日期本土化_Java中的日期操作
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- JavaScript 日期操作我不知道的事情
平时对 Date 很多内容都一知半解,每次一用到 Date 就需要查资料,着实恼火. 故此文记录关于 JS 日期操作那些我不知道的事. 基础问题 Date.prototype.getTime() 返回 ...
最新文章
- 使用diamond2的一些问题的解决
- 欢乐拼图发红包微信小程序开发过程实录成品展示
- MySQL复习资料(九)——MySQL-图形化工具使用
- [文档].Altera - Avalon接口规范
- caffe各种依赖包配置
- DiagnosticsTextBox:WinForms的日志窗口
- IP虚拟服务器软件IPVS,ipvs介绍_ipvs配置安装部署-华为云
- 底层I/O性能大PK:Python/Java被碾压,Rust有望取代C++
- .net core 获取binary 文件_Linux操作系统文件目录
- java如何从服务器上删除文件,java从服务器删除文件
- 关于Mysql的mysql.sock文件
- 简简单单几行Python代码就能暴力破解网站登录密码,真有这么强吗?
- activity has leaked window
- 样本标准差与自由度 n-1 卡方分布关系的证明
- channel小知识点
- Swift之网络编程-网络监测
- PB使用WININET的FTP方式自动更新(四、下载)
- html div 虚线边框样式,纯CSS实现渐变虚线框和边框滚动动画
- php empty 注意
- Google财经香港版上线,香港路演