八java 常用日期函数总结Word文件下载.docx

上传人:b****6 文档编号:17653168 上传时间:2022-12-07 格式:DOCX 页数:14 大小:23.83KB
下载 相关 举报
八java 常用日期函数总结Word文件下载.docx_第1页
第1页 / 共14页
八java 常用日期函数总结Word文件下载.docx_第2页
第2页 / 共14页
八java 常用日期函数总结Word文件下载.docx_第3页
第3页 / 共14页
八java 常用日期函数总结Word文件下载.docx_第4页
第4页 / 共14页
八java 常用日期函数总结Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

八java 常用日期函数总结Word文件下载.docx

《八java 常用日期函数总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《八java 常用日期函数总结Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

八java 常用日期函数总结Word文件下载.docx

intweekno=cal.get(Calendar.WEEK_OF_YEAR);

(2)计算一年中的第几星期是几号 

yyyy-MM-dd"

cal.set(Calendar.WEEK_OF_YEAR,1);

cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);

System.out.println(df.format(cal.getTime()));

输出:

2006-01-02 

5.add()和roll()的用法 

(1)add()方法 

cal.add(Calendar.DATE,-4);

cal.add(Calendar.DATE,4);

date=cal.getTime();

输出:

2006-08-30 

2006-10-03 

(2)roll方法 

cal.roll(Calendar.DATE,-4);

cal.roll(Calendar.DATE,4);

2006-10-29 

可见,roll()方法在本月内循环,一般使用add()方法;

6.计算两个任意时间中间的间隔天数 

(1)传进Calendar对象 

/***//**计算两个时间之间相隔天数 

*@paramstartday开始时间 

*@paramendday结束时间 

*@return 

*/ 

publicintgetIntervalDays(Calendarstartday,Calendarendday)...{ 

//确保startday在endday之前 

if(startday.after(endday))...{ 

Calendarcal=startday;

startday=endday;

endday=cal;

//分别得到两个时间的毫秒数 

longsl=startday.getTimeInMillis();

longel=endday.getTimeInMillis();

longei=el-sl;

//根据毫秒数计算间隔天数 

return(int)(ei/(1000*60*60*24));

(2)传进Date对象 

publicintgetIntervalDays(Datestartday,Dateendday)...{ 

Datecal=startday;

longsl=startday.getTime();

longel=endday.getTime();

}同理,可以用相同的方法计算出任意两个时间相隔的小时数,分钟数,秒钟数等 

以上方法是完全按时间计算,有时并不能令人满意,如:

startday="

2006-10-1120:

00:

00"

endday="

2006-10-128:

计算结果为0,但是我们也许相让计算结果变为1,此时可以用如下方法实现:

在传参之前,先设定endday的时间,如:

endday.set(Calendar.HOUR_OF_DAY,23);

endday.set(Calendar.MINUTE,59);

endday.set(Calendar.SECOND,59);

endday.set(Calendar.MILLISECOND,59);

这样再传进去startday,endday,则结果就如我们所愿了。

不过,如果嫌以上方法麻烦,可以参考以下方法:

(3)改进精确计算相隔天数的方法 

publicintgetDaysBetween(Calendard1,Calendard2)...{ 

if(d1.after(d2))...{//swapdatessothatd1isstartandd2isend 

java.util.Calendarswap=d1;

d1=d2;

d2=swap;

intdays=d2.get(Calendar.DAY_OF_YEAR)-d1.get(Calendar.DAY_OF_YEAR);

inty2=d2.get(Calendar.YEAR);

if(d1.get(Calendar.YEAR)!

=y2)...{ 

d1=(Calendar)d1.clone();

do...{ 

days+=d1.getActualMaximum(Calendar.DAY_OF_YEAR);

//得到当年的实际天数 

d1.add(Calendar.YEAR,1);

}while(d1.get(Calendar.YEAR)!

=y2);

returndays;

获取系统当前时间:

publicstaticStringgetSystemTime(){ 

yyyy-MM-ddHH:

returndf.format(date);

//字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可) 

java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat("

M/dd/yyyyhh:

ssa"

java.util.Locale.US);

java.util.Dated=sdf.parse("

5/13/200310:

31:

37AM"

SimpleDateFormatformatter=newSimpleDateFormat("

StringmDateTime1=formatter.format(d);

//当前时间 

Calendarcal=Calendar.getInstance();

//SimpleDateFormatformatter=newSimpleDateFormat("

ssGEDFwWaEF"

StringmDateTime=formatter.format(cal.getTime());

//1年前日期 

java.util.DatemyDate=newjava.util.Date();

longmyTime=(myDate.getTime()/1000)-60*60*24*365;

myDate.setTime(myTime*1000);

StringmDate=formatter.format(myDate);

//明天日期 

myDate=newjava.util.Date();

myTime=(myDate.getTime()/1000)+60*60*24;

mDate=formatter.format(myDate);

//两个时间之间的天数 

SimpleDateFormatmyFormatter=newSimpleDateFormat("

java.util.Datedate=myFormatter.parse("

2003-05-1"

java.util.Datemydate=myFormatter.parse("

1899-12-30"

longday=(date.getTime()-mydate.getTime())/(24*60*60*1000);

//加半小时 

SimpleDateFormatformat=newSimpleDateFormat("

java.util.Datedate1=format.parse("

2002-02-2823:

16:

longTime=(date1.getTime()/1000)+60*30;

date1.setTime(Time*1000);

Stringmydate1=formatter.format(date1);

//年月周求日期 

SimpleDateFormatformatter2=newSimpleDateFormat("

yyyy-MMFE"

java.util.Datedate2=formatter2.parse("

2003-055星期五"

SimpleDateFormatformatter3=newSimpleDateFormat("

Stringmydate2=formatter3.format(date2);

//求是星期几 

mydate=myFormatter.parse("

2001-1-1"

SimpleDateFormatformatter4=newSimpleDateFormat("

E"

Stringmydate3=formatter4.format(mydate);

在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。

若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,若对应的是MSsqlserver数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型 

你可以使用dateFormat定义时间日期的格式,转一个字符串即可 

packagepersonal.jessica;

importjava.util.Date;

importjava.util.Calendar;

importjava.sql.Timestamp;

importjava.text.DateFormat;

importjava.text.SimpleDateFormat;

importjava.util.Locale;

classDatetest{ 

/** 

*method将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp) 

*@paramdateString需要转换为timestamp的字符串 

*@returndataTimetimestamp 

publicfinalstaticjava.sql.Timestampstring2Time(StringdateString) 

throwsjava.text.ParseException{ 

DateFormatdateFormat;

dateFormat=newSimpleDateFormat("

yyyy-MM-ddkk:

ss.SSS"

Locale.ENGLISH);

//设定格式 

//dateFormat=newSimpleDateFormat("

dateFormat.setLenient(false);

java.util.DatetimeDate=dateFormat.parse(dateString);

//util类型 

java.sql.TimestampdateTime=newjava.sql.Timestamp(timeDate.getTime());

//Timestamp类型,timeDate.getTime()返回一个long型 

returndateTime;

*method将字符串类型的日期转换为一个Date(java.sql.Date) 

*@paramdateString需要转换为Date的字符串 

*@returndataTimeDate 

publicfinalstaticjava.sql.Datestring2Date(StringdateString) 

throwsjava.lang.Exception{ 

java.sql.DatedateTime=newjava.sql.Date(timeDate.getTime());

//sql类型 

publicstaticvoidmain(String[]args){ 

Dateda=newDate();

//注意:

这个地方da.getTime()得到的是一个long型的值 

System.out.println(da.getTime());

//由日期date转换为timestamp 

//第一种方法:

使用newTimestamp(long) 

Timestampt=newTimestamp(newDate().getTime());

System.out.println(t);

//第二种方法:

使用Timestamp(intyear,intmonth,intdate,inthour,intminute,intsecond,intnano) 

Timestamptt=newTimestamp(Calendar.getInstance().get( 

Calendar.YEAR)-1900,Calendar.getInstance().get( 

Calendar.MONTH),Calendar.getInstance().get( 

Calendar.DATE),Calendar.getInstance().get( 

Calendar.HOUR),Calendar.getInstance().get( 

Calendar.MINUTE),Calendar.getInstance().get( 

Calendar.SECOND),0);

System.out.println(tt);

try{ 

StringsToDate="

2005-8-18"

;

//用于转换成java.sql.Date的字符串 

StringsToTimestamp="

2005-8-1814:

21:

12.123"

//用于转换成java.sql.Timestamp的字符串 

Datedate1=string2Date(sToDate);

Timestampdate2=string2Time(sToTimestamp);

System.out.println("

Date:

"

+date1.toString());

//结果显示 

Timestamp:

+date2.toString());

}catch(Exceptione){ 

e.printStackTrace();

下面是例子:

Java代码 

1.package 

test;

2. 

3.import 

java.text.DateFormat;

4.import 

java.text.ParseException;

5.import 

java.text.SimpleDateFormat;

6. 

7.import 

java.util.Calendar;

8.import 

java.util.Date;

9.import 

java.util.Hashtable;

10. 

11.import 

javax.swing.JOptionPane;

12. 

13. 

14. 

15.public 

class 

Test2{ 

16. 

17. 

public 

static 

boolean 

isdate(String 

s){ 

18. 

String 

a[]=s.split("

-"

19. 

flg=true;

20. 

if(!

(Integer.parseInt(a[0])>

=1950 

&

Integer.parseInt(a[0])<

=2050)){ 

21. 

flg=false;

22. 

23. 

return 

flg;

24. 

25. 

26. 

checkDate(String 

27. 

ret 

true;

28. 

try{ 

29. 

DateFormat 

df 

new 

SimpleDateFormat("

30. 

df.format(df.parse(s)).equals(s);

31. 

32. 

catch(ParseException 

e){ 

33. 

false;

34. 

35. 

ret;

36. 

37. 

38. 

Object 

dateinfo(String 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1