str=format2.format(date);
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等数据包装类型与String类型的相互转换为:
(以Integer为例)
Integer——>String
Integer ii;
String si;
……
si=ii.toString;
String——>Intteger
Integer ii;
String si;
……
ii=Integer.valueOf(si);
字符串转换成时间及时间相减:
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:)
两个日期相减
import java.util.*;
import java.text.*;
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个月后的日期:
import java.util.*;
import java.text.DateFormat;
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.计算日期间隔
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.时间显示控制
第一种方式:
<html>
<head><title>取得系统时间</title></head>
<body>
<%java.util.Date date=new java.util.Date();%>
现在是:<%=date%>
</body>
</html>
运行结果:
现在是:Tue Jul 31 10:32:52 CST 2001
第二种方式:
<%@ page import="java.util.*, java.text.*" %>
<HTML>
<HEAD><TITLE>显示当前时间</TITLE></HEAD>
<BODY>
当前时间:
<%
Date now = new Date();
out.println(DateFormat.getTimeInstance().format(now));
%>
</BODY>
</HTML>
运行结果:
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));
%>
运行结果:
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));
%>
运行结果:
2001/07/31 10/32/52
第三四两种方式其实是一样的他可以产生千变万化的格式。
//比较两个时间是否相同
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)){//判断当前时间是否为以后的时间
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));
}
}