jsp中的日期问题及其它
日期问题
1、获取服务器端当前日期
DatemyDate=newDate();
2、获取当前年、月、日:
DatemyDate=newDate();
intthisYear=myDate.getYear()+1900;//thisYear=2003
intthisMonth=myDate.getMonth()+1;//thisMonth=5
intthisDate=myDate.getDate();//thisDate=30
3、按本地时区输出当前日期
DatemyDate=newDate();
out.println(myDate.toLocaleString());
输出结果为:
2003-5-30
4、获取数据库中字段名为”publish_time“、类型为Datetime的值
DatesDate=rs.getDate("publish_time");
5、按照指定格式打印日期
DatedNow=newDate();
SimpleDateFormatformatter=newSimpleDateFormat("Eyyyy.MM.dd'at'hh:mm:ssazzz");
out.println("Itis"+formatter.format(dNow));
输出的结果为:
Itis星期五2003.05.30at11:30:46上午CST
(更为详尽的格式符号请参看SimpleDateFormat类)
6、将字符串转换为日期
Stringinput="1222-11-11";
SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");
Datet=null;
try{
t=formatter.parse(input);
out.println(t);
}catch(ParseExceptione){
out.println("unparseableusing"+formatter);
}
输出结果为:
FriNov1100:00:00CST1222
7、计算日期之间的间隔
Stringinput="2003-05-01";
SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");
Dated1=null;
try{
d1=formatter.parse(input);
}catch(ParseExceptione){
out.println("unparseableusing"+formatter);
}
Dated2=newDate();
longdiff=d2.getTime()-d1.getTime();
out.println("Differenceis"+(diff/(1000*60*60*24))+"days.");
输出结果为:
Differenceis29days.
8、日期的加减运算
方法:用Calendar类的add()方法
Calendarnow=Calendar.getInstance();
SimpleDateFormatformatter=newSimpleDateFormat("Eyyyy.MM.dd'at'hh:mm:ssazzz");
out.println("Itisnow"+formatter.format(now.getTime()));
now.add(Calendar.DAY_OF_YEAR,-(365*2));
out.println("<br>");
out.println("Twoyearsagowas"+formatter.format(now.getTime()));
输出结果为:
Itisnow星期五2003.05.30at01:45:32下午CST
Twoyearsagowas星期三2001.05.30at01:45:32下午CST
9、比较日期
方法:用equals()、before()、after()方法
DateFormatdf=newSimpleDateFormat("yyy-MM-dd");
Dated1=df.parse("2000-01-01");
Dated2=df.parse("1999-12-31");
Stringrelation=null;
if(d1.equals(d2))
relation="thesamedateas";
elseif(d1.before(d2))
relation="before";
else
relation="after";
out.println(d1+"is"+relation+''+d2);
输出结果为:
SatJan0100:00:00CST2000isafterFriDec3100:00:00CST1999
10、记录一件事所花费的时间
方法:调用两次System.getTimeMillis()方法,求差值
longt0,t1;
t0=System.currentTimeMillis();
out.println("Cycstartsat"+t0);
intk=0;
for(inti=0;i<100000;i++){
k+=i;
}
t1=System.currentTimeMillis();
out.println("<br>");
out.println("Cycendsat"+t1);
out.println("<br>");
out.println("Thisruntook"+(t1-t0)+"ms.");
输出结果为:
Cycstartsat1054275312432
Cycendsat1054275312442
Thisruntook10ms.
其它:如何格式化小数
DecimalFormatdf=newDecimalFormat(",###.00");
doubleaNumber=33665448856.6568975;
Stringresult=df.format(aNumber);
out.println(result);
输出结果为:
33,665,448,856.66