java时间操作
来源:互联网 发布:厦门大学大数据实验室 编辑:程序博客网 时间:2024/06/06 18:27
时间加减
1.用java.util.Calender来实现
Calendar calendar=Calendar.getInstance(); calendar.setTime(new Date()); System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期 calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1
2.用java.text.SimpleDateFormat和java.util.Date来实现
Date d=new Date(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); System.out.println("今天的日期:"+df.format(d)); System.out.println("两天前的日期:" + df.format(new Date(d.getTime() - 2 * 24 * 60 * 60 * 1000))); System.out.println("三天后的日期:" + df.format(new Date(d.getTime() + 3 * 24 * 60 * 60 * 1000)));
3.GregorianCalendar 实现
GregorianCalendar gc=new GregorianCalendar(); gc.setTime(new Date); gc.add(field,value); value为正则往后,为负则往前 field取1加1年,取2加半年,取3加一季度,取4加一周 取5加一天..../**java中对日期的加减操作*gc.add(1,-1)表示年份减一.*gc.add(2,-1)表示月份减一.*gc.add(3.-1)表示周减一.*gc.add(5,-1)表示天减一.*以此类推应该可以精确的毫秒吧.没有再试.大家可以试试.*GregorianCalendar类的add(int field,int amount)方法表示年月日加减.*field参数表示年,月.日等.*amount参数表示要加减的数量.
时间比较*
1.两个string类型的日期比较大小
public static int compare_date(String DATE1, String DATE2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date dt1 = df.parse(DATE1); Date dt2 = df.parse(DATE2); if (dt1.getTime() > dt2.getTime()) { System.out.println("dt1 在dt2前"); return 1; } else if (dt1.getTime() < dt2.getTime()) { System.out.println("dt1在dt2后"); return -1; } else { return 0; } } catch (Exception exception) { exception.printStackTrace(); } return 0; }
2.返回两个string类型日期之间相差的天数
public static int daysBetween(String smdate,String bdate){ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); long time1 = 0; long time2 = 0; try{ cal.setTime(sdf.parse(smdate)); time1 = cal.getTimeInMillis(); cal.setTime(sdf.parse(bdate)); time2 = cal.getTimeInMillis(); }catch(Exception e){ e.printStackTrace(); } long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); }
3.返回两个string类型日期相差的小时数
public static int daysBetween2(String startTime, String endTime) { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); Calendar cal = Calendar.getInstance(); long time1 = 0; long time2 = 0; try{ cal.setTime(sdf.parse(startTime)); time1 = cal.getTimeInMillis(); cal.setTime(sdf.parse(endTime)); time2 = cal.getTimeInMillis(); }catch(Exception e){ e.printStackTrace(); } long between_days=(time2-time1)/(1000*3600); return Integer.parseInt(String.valueOf(between_days)); }
4.计算两段日期的重合日期
/** * 计算两段日期的重合日期 * @param str1 开始日期1 * @param str2 结束日期1 * @param str3 开始日期2 * @param str4 结束日期2 * @return * @throws Exception */ public static Map<String,Object> comparisonRQ(String str1, String str2, String str3, String str4) throws Exception { String mesg = ""; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String startdate = ""; String enddate = ""; try { Date dt1 = df.parse(str1); Date dt2 = df.parse(str2); Date dt3 = df.parse(str3); Date dt4 = df.parse(str4); if (dt1.getTime()<=dt3.getTime()&&dt3.getTime()<=dt2.getTime()&&dt2.getTime()<=dt4.getTime()) { mesg = "f";//重合 startdate = str3; enddate = str2; } if (dt1.getTime()>=dt3.getTime()&&dt3.getTime()<=dt2.getTime()&&dt2.getTime()<=dt4.getTime()) { mesg = "f";//重合 startdate = str1; enddate = str2; } if (dt3.getTime()<=dt1.getTime()&&dt1.getTime()<=dt4.getTime()&&dt4.getTime()<=dt2.getTime()) { mesg = "f";//重合 startdate = str1; enddate = str4; } if (dt3.getTime()>=dt1.getTime()&&dt1.getTime()<=dt4.getTime()&&dt4.getTime()<=dt2.getTime()) { mesg = "f";//重合 startdate = str3; enddate = str4; } System.out.println(startdate+"----"+enddate); }catch (ParseException e) { e.printStackTrace(); throw new ParseException(e.getMessage(), 0); }catch(Exception e){ e.printStackTrace(); throw new Exception(e); } Map<String,Object> map = new HashMap<String,Object>(); map.put("startdate", startdate); map.put("enddate", enddate); return map; }
阅读全文
0 0
- JAVA中的时间操作
- java中的时间操作
- java中的时间操作
- java中的时间操作
- java中的时间操作
- java中的时间操作
- java中的时间操作
- java 时间操作
- JAVA中的时间操作
- java中的时间操作
- java中的时间操作
- java中的时间操作
- JAVA中的时间操作
- JAVA中的时间操作
- java中的时间操作
- java中的时间操作
- JAVA中的时间操作
- java中的时间操作
- js中switch语句
- fiddler修改返回数据的三种方法
- 分布式数据库+分布式数据库简单理解+定义数据库链路+数据库链路案例
- IntelliJ Idea 常用快捷键列表
- Input string was not in a correct format. 错误解析
- java时间操作
- Nginx学习笔记 -- day01 Nginx搭建
- p6spy监控jdbc连接oracle sql
- 深入理解 Java 虚拟机--晚期(运行期)优化
- 01、react 之初介绍
- 有关数据溢出的总结
- Ubuntu安装微软字体
- mysql在从库备份制作新从库
- fb.h注释