以下为在网上收集的多种解决方法
1、 在处理日期的格式转换的时候总结些经验,和大家分享,如下:
String text ="1996-2-1";
Date d = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
df.setLenient(false);//这个的功能是不把1996-13-3 转换为1997-1-3
try
{
d = df.parse(text);
}
catch(Exception e)
{
d=new Date();
System.out.println("你输入的日期不合法,请重新输入");
}
String sdata=df.format(d);
System.out.println(sdata);
2、使用StringTokenizer先分成两部分"2002-3-20",
"15:07:40",然后在分别使用StringTokenizer取得year,month,day,
hour,minute,second,最后使用GregorianCalendar设置日期,大概代码如下:
String time="2002-3-20 15:07:40";
StringTokenizer t=new StringTokenizer(time," ");//空格分段
String time1=time.nextToken();//time1为"2002-3-20"
String time2=time.nextToken();//time2为"15:07:40"
再分别以"-"和":"为分隔符号取得个变量
StringTokenizer t2=new StringTokenizer(time1,"-");//"-"分段
String year=t2.nextToken();
String month=t2.nextToken();
String day=t2.nextToken();
3、import java.io.*;
import java.util.*;
import java.util.Date;
import java.text.*;
public class test
{
public static void main(String args[]){
try{
String str = "2002-3-20 15:07:40";
Date dt = new SimpleDateFormat("yyyy-MM-dd H:m:s").parse(str);
long lgTime = dt.getTime();
lgTime += 24*60*60*1000;//一在
lgTime += 60*60*1000;//一小时
java.sql.Timestamp ts = new java.sql.Timestamp(lgTime);
String newDate = new SimpleDateFormat("yyyy-MM-dd H:m:s").format(ts);
System.out.println("st: " + newDate);
} catch(Exception ee ) {
ee.printStackTrace();
}
}
}
4、import java.util.*; import java.text.*; public class data { public static void main(String[] args) { String ds = "2002-3-20 15:07:40"; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); try { Date d = df.parse(ds);//将字符串解析成了Date型 System.out.println("日期" + d); GregorianCalendar cal = new GregorianCalendar(); cal.setTime(d); //现在开始就可以用cal.add(int field, int amount)来加上任意的时间了 //另外,GregorianCalendar cal = new GregorianCalendar()就可以得到系统当前时间 } catch(ParseException e) { System.out.println("Unable to parse " + ds); } } } 我特地运行了一遍,是可行的