java中java.uti.Date和java.sql.Date及timestamp之间的相互转化

来源:互联网 发布:学校 电子地图 软件 编辑:程序博客网 时间:2024/05/07 18:05

在输入输出数据的时候,经常会换时间,一般我们是使用java.util.date

但是在数据库中我们使用的是java.sql.date。

1下面就是将//java.util.date --->java.sql.date

public  java.sql.Date StringToDate(String dateStr){
DateFormat dd=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date=null;

try {
date = dd.parse(dateStr);//将字符串的时间(只有年月日)转化成java.util.Date
} catch (ParseException e) {
e.printStackTrace();
}

java.sql.Date date2 = new java.sql.Date(date.getTime());//java.util.date --->java.sql.date

return date2;
}



Timestamp不仅可以显示日期,还可以显示时分秒更加详细的时间。

2java.util.Date-->Timestamp

Timestamp timestamp = new Timestamp(new java.util.Date().getTime()); //java.util.date --->java.sql.Timestamp


3如果时间是用字符串拼接出来的可以这样处理。

private Timestamp setTimeStamp(String timeStr) {

Timestamp time;
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  


try {
java.util.Date datetemp = df.parse(timeStr);//将字符串的时间(年月日时分秒)转化成java.util.Date


time = new Timestamp(datetemp.getTime()); //java.util.date --->java.sql.Timestamp
} catch (Exception e) {
e.printStackTrace();
}

return time;
}



其他一些方法:

比较2个时间的大小。

public static int way1(String DATE1, String DATE2) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() > dt2.getTime()) {
System.out.println(dt1+"在"+dt2+"前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
System.out.println(dt1+"在"+dt2+"后");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}


比较时间1比时间2大多少

public void way1() {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {
Date d1 = df.parse("2004-03-26 13:31:40");
Date d2 = df.parse("2004-01-02 11:30:24");
long diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
System.out.println(" 时间1领先时间2" + days + "天");
} catch (Exception e) {
}
}

原创粉丝点击