欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java处理日期时间的方法汇总

程序员文章站 2024-03-11 13:16:55
一、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);

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。