java 日期计算
来源:互联网 发布:书画淘宝网 编辑:程序博客网 时间:2024/06/01 18:32
/** * 根据起期和期限计算止期 * @param startDate 起期(格式为yyyy-MM-dd) * @param date 天数或者月数或者年数 * @param dayOrMonth (传"day"或者"month"或者"year") * @return * @throws ParseException */ public static String calculateDate(String startDate, int date, String dayOrMonth) throws ParseException { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(sf.parse(startDate)); if ("year".equals(dayOrMonth)) calendar.add(Calendar.YEAR, date); else if ("month".equals(dayOrMonth)) calendar.add(Calendar.MONTH, date); else calendar.add(Calendar.DAY_OF_YEAR, date); return sf.format(calendar.getTime()); }
执行:calculateDate("2017-08-20", 2, "month")
结果:2017-10-20
/** * 日期比较 * @param time1 日期1(格式为yyyy-MM-dd) * @param time2 日期2(格式为yyyy-MM-dd) * @return 日期1在日期2之前 true; 日期1在日期2之前 false * @throws ParseException */ public static boolean compareDate(String time1, String time2) throws ParseException { boolean flag = false; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = df.parse(time1); Date date2 = df.parse(time2); if (date1.before(date2)) flag = true; return flag; }
执行:compareDate("2017-01-15", "2017-02-20")
结果:true
方法1:
/** * 判断当前系统时间是否在当天的6点之后 * @return true-是 false-否 */ private static boolean compareDate(){ boolean flag = false; //当前系统时间 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentDateStr = df.format(new Date()); String yyyyMMdd = currentDateStr.split(" ")[0];// String hour = "";//配置成配置项// if (StringUtils.isEmpty(hour)) {// hour = "06";// } else {// hour = hour.replace(" ", "");// }// int hours;// try {// hours = Integer.parseInt(hour);// } catch (Exception e) {// hours = 6;// }// if(hours < 0 || hours >= 24) hour = "06";// String appointDateStr = yyyyMMdd + " " + hour + ":00:00";// String HHmmss = "06:00:00"; //配置成配置项// SimpleDateFormat df2 = new SimpleDateFormat("HH:mm:ss");// try {// df2.parse(HHmmss);// } catch (ParseException e1) {// HHmmss = "06:00:00";// } String HHmmss = ""; try { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 6); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, 0); HHmmss = sdf.format(calendar.getTime()); } catch (Exception e) { HHmmss = "06:00:00"; } String appointDateStr = yyyyMMdd + " " + HHmmss; try { Date currentDate = df.parse(currentDateStr); Date appointDate = df.parse(appointDateStr); if (currentDate.after(appointDate)) { flag = true; } } catch (ParseException e) { //打印日志:转换日期异常 } return flag; }
方法2:(推荐这种方式)
/** * 判断当前系统时间是否在当天的6点之后 * @return true-是 false-否 */ private static boolean compareDate(){ boolean flag = false; //当前系统时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentDateStr = sdf.format(new Date());//当前日期 try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 6);//配置成配置项 calendar.set(Calendar.SECOND, 0);//配置成配置项 calendar.set(Calendar.MINUTE, 0);//配置成配置项 String appointDateStr = sdf.format(calendar.getTime());//指定日期 Date currentDate = sdf.parse(currentDateStr); Date appointDate = sdf.parse(appointDateStr); if (currentDate.after(appointDate)) { flag = true; } } catch (ParseException e) { //打印日志:转换日期异常 } catch (Exception e) { //打印日志:转换日期异常 } return flag; }
/** * 当前日期与指定日期相差天数 */ private static int days(Date currentDate, Date appointDate) { int days = (int) ((currentDate.getTime() - appointDate.getTime()) / (1000*3600*24)); return days; } //main方法验证 public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String appointDateStr = "2012-06-17 00:00:00"; String currentDateStr = sdf.format(new Date()); currentDateStr = currentDateStr.split(" ")[0] + " 00:00:00"; try { Date appointDate = sdf.parse(appointDateStr); Date currentDate = sdf.parse(currentDateStr); int days = days(currentDate, appointDate); System.out.println(days); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
阅读全文
0 0
- java日期 计算前后日期
- 计算Java日期
- Java日期计算
- 计算Java日期
- 计算Java日期
- 计算Java日期
- [转载]计算Java日期
- 计算Java日期
- 计算Java日期
- 计算Java日期
- 计算Java日期
- 计算Java日期
- java日期计算
- 计算Java日期
- 计算Java日期
- Java日期计算
- 计算Java日期
- JAVA 日期比较、计算
- Python中的内置模块和第三方模块
- iOS 音视频合成
- TabLayout上导航栏+PullToRefreshListView展示数据
- C# DataTable-(乱七八糟-01)-查询日期区间内,统计不存在的维度值,显示且设置值为0
- c++函数中的值传递以及引用传递
- java 日期计算
- securecrt 光标消失
- Lambda表达式
- js 数组是不是相等
- 最新Android的SDK版本与API Level的对应关系
- jQuery-创建、删除、复制、替换、包裹节点
- 修改linux系统中自带的jdk
- java中的异常处理 try-catch 以及try-catch-finally
- Git 添加文件到版本库