Java处理日期时间的方法汇总
一、java.util.Calendar介绍
Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年1月1日的00:00:00.000,格里高利历)的偏移量。
二、简单示例
//通过格式化输出日期 java.text.SimpleDateFormatformat=newjava.text.SimpleDateFormat("yyyy-MM-dd"); Calendarcal=Calendar.getInstance();//取当前日期。 System.out.println("Todayis:"+format.format(cal.getTime())); cal=Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH,-1);//取当前日期的前一天. System.out.println("yesterdayis:"+format.format(cal.getTime())); cal=Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH,+1);//取当前日期的后一天. System.out.println("nextdayis:"+format.format(cal.getTime()));
或者
java.util.Datetoday=newjava.util.Date(); java.text.SimpleDateFormatdateFormat=newjava.text.SimpleDateFormat("yyyy-MM-dd"); java.text.SimpleDateFormatdateTimeFormat=newjava.text.SimpleDateFormat("yyyy-MM-ddHH:mm:ss"); System.out.println("Todayis"+dateFormat.format(today)); System.out.println("Nowis"+dateTimeFormat.format(today));
二、构造特定时间
java.text.SimpleDateFormatformat=newjava.text.SimpleDateFormat("yyyy-MM-dd"); Calendarcalendar=newGregorianCalendar(2007,11,25,0,0,0); Datedate=calendar.getTime(); System.out.println("2007Christmasis:"+format.format(date));
GregorianCalendar构造方法参数依次为:年,月-1,日,时,分,秒.
或者
java.text.SimpleDateFormatformat=newjava.text.SimpleDateFormat("yyyy-MM-dd"); java.util.Datedate=format.parse("2007-12-25"); System.out.println("2007Christmasis:"+format.format(date));
三、取日期的每部分
intyear=calendar.get(Calendar.YEAR); intmonth=calendar.get(Calendar.MONTH)+1; intday=calendar.get(Calendar.DAY_OF_MONTH); inthour=calendar.get(Calendar.HOUR_OF_DAY); intminute=calendar.get(Calendar.MINUTE); intsecond=calendar.get(Calendar.SECOND);
取月份要加1
四、获取当前月份的最大天数
Calendarcal=Calendar.getInstance(); intday=cal.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(day);
五、取当月的最后一天
Calendarcal=Calendar.getInstance(); intmaxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH); java.text.Formatformatter3=newjava.text.SimpleDateFormat("yyyy-MM-"+maxDay); System.out.println(formatter3.format(cal.getTime()));
六、取当月的第一天
java.text.SimpleDateFormatformat=newjava.text.SimpleDateFormat("yyyy-MM-01"); java.util.DatefirstDay=newjava.util.Date(); System.out.println("themonthfirstdayis"+formats.format(firstDay));
七、求两个日期之间相隔的天数
java.text.SimpleDateFormatformat=newjava.text.SimpleDateFormat("yyyy-MM-dd"); java.util.DatebeginDate=format.parse("2007-12-24"); java.util.DateendDate=format.parse("2007-12-25"); longday=(date.getTime()-mydate.getTime())/(24*60*60*1000); System.out.println("相隔的天数="+day);
八、一年前的日期
java.text.Formatformatter=newjava.text.SimpleDateFormat("yyyy-MM-dd"); java.util.DatetodayDate=newjava.util.Date(); longbeforeTime=(todayDate.getTime()/1000)-60*60*24*365; todayDate.setTime(beforeTime*1000); StringbeforeDate=formatter.format(todayDate); System.out.println(beforeDate);
九、一年后的日期
java.text.Formatformatter=newjava.text.SimpleDateFormat("yyyy-MM-dd"); java.util.DatetodayDate=newjava.util.Date(); longafterTime=(todayDate.getTime()/1000)+60*60*24*365; todayDate.setTime(afterTime*1000); StringafterDate=formatter.format(todayDate); System.out.println(afterDate);
十、10小时后的时间
java.util.CalendarCal=java.util.Calendar.getInstance(); Cal.setTime(dateOper); Cal.add(java.util.Calendar.HOUR_OF_DAY,10); System.out.println("date:"+forma.format(Cal.getTime()));
十一、10小时前的时间
java.util.CalendarCal=java.util.Calendar.getInstance(); Cal.setTime(dateOper); Cal.add(java.util.Calendar.HOUR_OF_DAY,-10); System.out.println("date:"+forma.format(Cal.getTime()));
十二、当前日期的星期一和星期天
SimpleDateFormatdateFormat=newSimpleDateFormat("yyyyMMdd"); GregorianCalendarcal=newGregorianCalendar(); intdayInWeek=cal.get(Calendar.DAY_OF_WEEK); intoffset=0; if(dayInWeek==1){ //星期天 offset=6; }else{ //星期一至星期六 offset=dayInWeek-2; } cal.add(GregorianCalendar.DAY_OF_MONTH,-offset); Stringsday=dateFormat.format(cal.getTime()); cal.add(GregorianCalendar.DAY_OF_MONTH,6); Stringeday=dateFormat.format(cal.getTime()); System.out.println("这个星期的星期一:"+sday); System.out.println("这个星期的星期天:"+eday);
十二、获取当前日期所在的星期属于今年的第几周
GregorianCalendarcal=newGregorianCalendar(); intweekOfYear=cal.get(Calendar.WEEK_OF_YEAR); System.out.println("这个星期属于第几周:"+weekOfYear);
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。