Java处理日期时间的方法汇总
程序员文章站
2024-03-08 23:58:58
一、java.util.calendar介绍
calendar 类是一个抽象类,它为特定瞬间与一组诸如 year、month、day_of_month、hour 等 日历...
一、java.util.calendar介绍
calendar 类是一个抽象类,它为特定瞬间与一组诸如 year、month、day_of_month、hour 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
二、简单示例
// 通过格式化输出日期 java.text.simpledateformat format = new java.text.simpledateformat("yyyy-mm-dd"); calendar cal = calendar.getinstance();// 取当前日期。 system.out.println("today is:" + format.format(cal.gettime())); cal = calendar.getinstance(); cal.add(calendar.day_of_month, -1);// 取当前日期的前一天. system.out.println("yesterday is:" + format.format(cal.gettime())); cal = calendar.getinstance(); cal.add(calendar.day_of_month, +1);// 取当前日期的后一天. system.out.println("nextday is:" + format.format(cal.gettime()));
或者
java.util.date today=new java.util.date(); java.text.simpledateformat dateformat = new java.text.simpledateformat("yyyy-mm-dd"); java.text.simpledateformat datetimeformat = new java.text.simpledateformat("yyyy-mm-dd hh:mm:ss"); system.out.println("today is "+dateformat.format(today)); system.out.println("now is "+datetimeformat.format(today));
二、构造特定时间
java.text.simpledateformat format = new java.text.simpledateformat("yyyy-mm-dd"); calendar calendar = new gregoriancalendar(2007, 11, 25,0,0,0); date date = calendar.gettime(); system.out.println("2007 christmas is:"+format.format(date));
gregoriancalendar构造方法参数依次为:年,月-1,日,时,分,秒.
或者
java.text.simpledateformat format = new java.text.simpledateformat("yyyy-mm-dd"); java.util.date date= format.parse("2007-12-25"); system.out.println("2007 christmas is:"+format.format(date));
三、取日期的每部分
int year =calendar.get(calendar.year); int month=calendar.get(calendar.month)+1; int day =calendar.get(calendar.day_of_month); int hour =calendar.get(calendar.hour_of_day); int minute =calendar.get(calendar.minute); int second =calendar.get(calendar.second);
取月份要加1
四、获取当前月份的最大天数
calendar cal = calendar.getinstance(); int day=cal.getactualmaximum(calendar.day_of_month); system.out.println(day);
五、取当月的最后一天
calendar cal = calendar.getinstance(); int maxday=cals.getactualmaximum(calendar.day_of_month); java.text.format formatter3=new java.text.simpledateformat("yyyy-mm-"+maxday); system.out.println(formatter3.format(cal.gettime()));
六、取当月的第一天
java.text.simpledateformat format = new java.text.simpledateformat("yyyy-mm-01"); java.util.date firstday=new java.util.date(); system.out.println("the month first day is "+formats.format(firstday));
七、求两个日期之间相隔的天数
java.text.simpledateformat format = new java.text.simpledateformat("yyyy-mm-dd"); java.util.date begindate= format.parse("2007-12-24"); java.util.date enddate= format.parse("2007-12-25"); long day=(date.gettime()-mydate.gettime())/(24*60*60*1000); system.out.println("相隔的天数="+day);
八、一年前的日期
java.text.format formatter=new java.text.simpledateformat("yyyy-mm-dd"); java.util.date todaydate=new java.util.date(); long beforetime=(todaydate.gettime()/1000)-60*60*24*365; todaydate.settime(beforetime*1000); string beforedate=formatter.format(todaydate); system.out.println(beforedate);
九、一年后的日期
java.text.format formatter=new java.text.simpledateformat("yyyy-mm-dd"); java.util.date todaydate=new java.util.date(); long aftertime=(todaydate.gettime()/1000)+60*60*24*365; todaydate.settime(aftertime*1000); string afterdate=formatter.format(todaydate); system.out.println(afterdate);
十、10小时后的时间
java.util.calendar cal=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.calendar cal=java.util.calendar.getinstance(); cal.settime(dateoper); cal.add(java.util.calendar.hour_of_day,-10); system.out.println("date:"+forma.format(cal.gettime()));
十二、当前日期的星期一和星期天
simpledateformat dateformat = new simpledateformat("yyyymmdd"); gregoriancalendar cal = new gregoriancalendar(); int dayinweek = cal.get(calendar.day_of_week); int offset = 0; if (dayinweek == 1) { // 星期天 offset = 6; } else { // 星期一至星期六 offset = dayinweek - 2; } cal.add(gregoriancalendar.day_of_month, -offset); string sday = dateformat.format(cal.gettime()); cal.add(gregoriancalendar.day_of_month, 6); string eday = dateformat.format(cal.gettime()); system.out.println("这个星期的星期一:" + sday); system.out.println("这个星期的星期天:" + eday);
十二、获取当前日期所在的星期属于今年的第几周
gregoriancalendar cal = new gregoriancalendar(); int weekofyear = cal.get(calendar.week_of_year); system.out.println("这个星期属于第几周:" + weekofyear);
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。