Java计算某日期多少天前后的日期!和Calendar类中的常用字段和方法!
来源:互联网 发布:网页美工和前端工作 编辑:程序博客网 时间:2024/06/10 13:35
<span style="font-size:18px;">import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; public class Date { /** * * @param datestr 日期字符串 * @param day 相对天数,为正数表示之后,为负数表示之前 * @return 指定日期字符串n天之前或者之后的日期 */ public static java.sql.Date getBeforeAfterDate(String datestr, int day) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); java.sql.Date olddate = null; try { df.setLenient(false); olddate = new java.sql.Date(df.parse(datestr).getTime()); } catch (ParseException e) { throw new RuntimeException("日期转换错误"); } Calendar cal = new GregorianCalendar(); cal.setTime(olddate); int Year = cal.get(Calendar.YEAR); int Month = cal.get(Calendar.MONTH); int Day = cal.get(Calendar.DAY_OF_MONTH); int NewDay = Day + day; cal.set(Calendar.YEAR, Year); cal.set(Calendar.MONTH, Month); cal.set(Calendar.DAY_OF_MONTH, NewDay); return new java.sql.Date(cal.getTimeInMillis()); } public static void main(String[] args) { System.out.println(getBeforeAfterDate("2015-04-19",-3)); //获取2008-10-5之后三天的日期 } }</span>
Calendar类中的常用字段和方法:
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @deprecated Calendar的常用方法和常用属性小结 * */ public class CalendarTest { public static void main(String[] args){ //常用方法 param(); //常用属性 method(); } //常用方法 public static void method(){ Date date = new Date(); Calendar c = Calendar.getInstance(); //setTime():使用给定的Date设置此 Calendar 的时间 c.setTime(date); //获取Calendar对象 Calendar cm = Calendar.getInstance(); //getTime():获取当前时间,类似于new Date(); Date d = cm.getTime(); System.err.println("Calendar获得时间:" + d); System.err.println("new Date创建的时间:" + date); //getTimeInMillis():返回此 Calendar 的时间值,以毫秒为单位。 long dl = c.getTimeInMillis(); long ddate = cm.getTimeInMillis(); System.err.println("毫秒数:" + dl); System.err.println("毫秒数:" + ddate); //setTimeInMillis():用给定的 long 值设置此Calendar的当前时间值。 long sv = 123456; Calendar sc = Calendar.getInstance(); sc.setTimeInMillis(sv); SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String st = ss.format(sc.getTime()); System.err.println(st); //get():返回给定日历字段的值。 int year = c.get(Calendar.YEAR); System.err.println(year); //set():将给定的日历字段设置为给定值 c.set(Calendar.YEAR, 2); int y = c.get(Calendar.YEAR); System.err.println(y);//输出2 //Calendar比较:before(),after(),equals(),compareTo(). try{ String startTime = "2015-04-12 12:45:39"; String endTime = "2015-04-19 12:45:40"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startDate = sdf.parse(startTime); Date endDate = sdf.parse(endTime); Calendar start = Calendar.getInstance(); Calendar end = Calendar.getInstance(); start.setTime(startDate); end.setTime(endDate); if(start.before(end)){ System.err.println("开始时间小于结束时间"); }else if(start.after(end)){ System.err.println("开始时间大于结束时间"); }else if(start.equals(end)){ System.err.println("开始时间等于结束时间"); } /* * start < end 返回-1 * start = end 返回0 * start > end 返回1 */ int count = start.compareTo(end); System.err.println(count); //add():为给定的日历字段添加或减去指定的时间量 start.add(Calendar.YEAR, -3); System.err.println("原来的时间:" + startTime); System.err.println("add后的时间:" + sdf.format(start.getTime())); //toString():转换为字符串 System.err.println(start.toString()); }catch(Exception e){} } //常用属性 @SuppressWarnings("unused") public static void param(){ Date date = new Date(); Calendar c = Calendar.getInstance(); c.setTime(date); //Calendar.YEAR:日期中的年 int year = c.get(Calendar.YEAR); //Calendar.MONTH:日期中的月,需要加1 int mounth = c.get(Calendar.MONTH) + 1; //Calendar.DATE:日期中的日 int day = c.get(Calendar.DATE); //Calendar.HOUR:日期中的小时(12小时制) int hour = c.get(Calendar.HOUR); //Calendar.HOUR_OF_DAY:24小时制 int HOUR_OF_DAY = c.get(Calendar.HOUR_OF_DAY); //Calendar.MINUTE:日期中的分钟 int minute = c.get(Calendar.MINUTE); //Calendar.SECOND:日期中的秒 int second = c.get(Calendar.SECOND); System.err.println(year + "-" + mounth + "-" + day + " " + hour + ":" + minute + ":" + second); //Calendar.WEEK_OF_YEAR:当前年中星期数 int WEEK_OF_YEAR = c.get(Calendar.WEEK_OF_YEAR); //Calendar.WEEK_OF_MONTH:当前月中星期数 int WEEK_OF_MONTH = c.get(Calendar.WEEK_OF_MONTH); //Calendar.DAY_OF_YEAR:当前年中的第几天 int DAY_OF_YEAR = c.get(Calendar.DAY_OF_YEAR); //Calendar.DAY_OF_MONTH:当前月中的第几天 int DAY_OF_MONTH = c.get(Calendar.DAY_OF_MONTH); //Calendar.DAY_OF_WEEK:当前星期的第几天(星期天表示第一天,星期六表示第七天) int DAY_OF_WEEK = c.get(Calendar.DAY_OF_WEEK); System.out.println("DAY_OF_WEEK:"+DAY_OF_WEEK); //Calendar.DAY_OF_WEEK_IN_MONTH:当前月中的第几个星期 int DAY_OF_WEEK_IN_MONTH = c.get(Calendar.DAY_OF_WEEK_IN_MONTH); System.out.println("DAY_OF_WEEK_IN_MONTH:"+DAY_OF_WEEK_IN_MONTH); try{ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date ampm = format.parse("2015-04-19 21:59:59"); Calendar cc = Calendar.getInstance(); cc.setTime(ampm); //AM_PM:HOUR 是在中午之前还是在中午之后,在中午12点之前返回0,在中午12点(包括12点)之后返回1 int AM_PM = cc.get(Calendar.AM_PM); }catch(Exception e){} } }
0 0
- Java计算某日期多少天前后的日期!和Calendar类中的常用字段和方法!
- java中Calendar类常用字段和方法
- java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期
- java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期
- 理解Calendar类和各种常用日期的获取方法
- Java中的时间格式化和时间计算的方法 date calendar类详解~~~perfect
- 常用类第三十二课,Calendar和GregorianCalendar的使用,日期计算
- 通过某日期得到该日期所在的一周的周一和周日的日期
- java Calendar API的部分字段和方法
- JAVA处理日期时间常用方法:强大的calendar类
- Java中用Calendar类计算周和周的起始日期
- Java中用Calendar类计算周和周的起始日期
- Java中用Calendar类计算周和周的起始日期
- Java中用Calendar类计算周和周的起始日期
- Java中用Calendar类计算周和周的起始日期(转)
- JAVA中用CALENDAR类计算周和周的起始日期
- Android手机开发:日期函数之判断某日期格式是否之前+计算某日期之前N天或之后N天的日期
- Java常用类库——时间处理类Date、Calendar、GregorianCalendar以及日期格式化和计算
- HDU 1695(欧拉函数+容斥原理)
- c实现:骨牌覆盖问题·二
- 既然选择了AC,就算单干我也要走到头
- Java《抽象类》
- CSS文字条纹阴影动画
- Java计算某日期多少天前后的日期!和Calendar类中的常用字段和方法!
- Android--工程目录结构
- 第13题
- opengl坐标系
- CSS3 莲花盛开动画
- GeneNomenclatureUtils_download_urls.txt(生物信息学数据库数据下载链接)
- [BZOJ2761]JLOI2011不重复的数字
- 信号与系统
- PHP语言实现脚本异步执行