java中的時(shí)間轉(zhuǎn)換及時(shí)間對(duì)比
SimpleDateFormat函數(shù)語(yǔ)法:
G 年代標(biāo)志符
y 年
M 月
d 日
h 時(shí) 在上午或下午 (1~12)
H 時(shí) 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第幾天
F 一月中第幾個(gè)星期幾
w 一年中第幾個(gè)星期
W 一月中第幾個(gè)星期
a 上午 / 下午 標(biāo)記符
k 時(shí) 在一天中 (1~24)
K 時(shí) 在上午或下午 (0~11)
z 時(shí)區(qū)
*/
1、Date——>String
String sdate;
Date ddate;
……
sdate=(new SimpleDateFormat("yyyy-MM-dd")).format(ddate);
2、String——>Date
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
String sdate="2006-06-06";
Date ddate;
ddate=sdf.parse(sdate);
另外Integer、Double等數(shù)據(jù)包裝類型與String類型的相互轉(zhuǎn)換為:
(以Integer為例)
Integer——>String
Integer ii;
String si;
……
si=ii.toString;
String——>Intteger
Integer ii;
String si;
……
ii=Integer.valueOf(si);
字符串轉(zhuǎn)換成時(shí)間及時(shí)間相減:
1:) SimpleDateFormat formatter = new SimpleDateFormat ("yyyy.MM.dd");
//假定像2002.07.04的是合法日期其他都非法。
String str="2002.07.04";
ParsePosition pos = new ParsePosition(0);
Date dt=formatter.parse(str,pos);
if(dt!=null)
{
//是合法日期
}
else
{
//非法日期
}
2:)
兩個(gè)日期相減
imp
imp
class a
{
public static void main(String[] args)
{
String s1 = "2003/08/15 17:15:30";
String s2 = "2002/09/14 14:18:37";
try{
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");
ParsePosition pos = new ParsePosition(0);
ParsePosition pos1 = new ParsePosition(0);
Date dt1=formatter.parse(s1,pos);
Date dt2=formatter.parse(s2,pos1);
System.out.println("dt1="+dt1);
System.out.println("dt2="+dt2);
long l = dt1.getTime() - dt2.getTime();
System.out.println("Hello World!="+l);
}catch(Exception e){
System.out.println("exception"+e.toString());
}
}
}
3:)得到2個(gè)月后的日期:
imp
imp
public class test2
{
public static void main(String args[]) throws Exception
{
String date="2001/11/30";
DateFormat dateFormat =
DateFormat.getDateInstance(DateFormat.MEDIUM);
GregorianCalendar grc=new GregorianCalendar();
grc.setTime(new Date(date));
grc.add(GregorianCalendar.MONTH,2);
System.out.println("grc="+dateFormat.format(grc.getTime()));
}
}
15.計(jì)算日期間隔
public int getDays(Date sd,Date ed){
return (ed.getTime()-sd.getTime())/(3600*24*1000)
}
16.日期加減
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
String str="20011230";
Date dt=sdf.parse(str,new ParsePosition(0));
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.DATE,2);//你要加減的日期
Date dt1=rightNow.getTime();
String reStr=sdf.format(dt1,"",new FieldPosition(0));
System.out.println(reStr);
17.時(shí)間顯示控制
第一種方式:
<html>
<head><title>取得系統(tǒng)時(shí)間</title></head>
<body>
<%java.util.Date date=new java.util.Date();%>
現(xiàn)在是:<%=date%>
</body>
</html>
運(yùn)行結(jié)果:
現(xiàn)在是:Tue Jul 31 10:32:52 CST 2001
第二種方式:
<%@ page imp
<HTML>
<HEAD><TITLE>顯示當(dāng)前時(shí)間</TITLE></HEAD>
<BODY>
當(dāng)前時(shí)間:
<%
Date now = new Date();
out.println(DateFormat.getTimeInstance().format(now));
%>
</BODY>
</HTML>
運(yùn)行結(jié)果:
10:31:42 AM
第三種方式:
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy年MM月dd日");
java.util.Date currentTime_1 = new java.util.Date();
out.print(formatter.format(currentTime_1));
%>
運(yùn)行結(jié)果:
2001年07月31日
第四種方式:
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy/MM/dd HH/mm/ss");
java.util.Date currentTime_1 = new java.util.Date();
out.print(formatter.format(currentTime_1));
%>
運(yùn)行結(jié)果:
2001/07/31 10/32/52
第三四兩種方式其實(shí)是一樣的他可以產(chǎn)生千變?nèi)f化的格式。
//比較兩個(gè)時(shí)間是否相同
public class Test {
/**
* @param args
*/
private static boolean isSameDate(Date date){
Calendar calendar=Calendar.getInstance();
//int todays=calendar.get(Calendar.DAY_OF_YEAR);
// calendar.setTime(date);
// int lastDate=calendar.get(Calendar.DAY_OF_YEAR);
if(calendar.getTime().after(date)){//判斷當(dāng)前時(shí)間是否為以后的時(shí)間
return true;
}else{
return false;
}
}
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
String sdate="2009-08-28";
Date ddate;
ddate=sdf.parse(sdate);
Date da=new Date();
System.out.println(da);
isSameDate(da);
System.out.println(isSameDate(ddate));
}
}
posted on 2009-09-07 12:17 大魚 閱讀(594) 評(píng)論(0) 編輯 收藏 所屬分類: j2se