java.sql.Date和java.sql.Timestamp转换
在开发web应⽤中,针对不同的数据库⽇期类型,我们需要在我们的程序中对⽇期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年⽉⽇的,可以选择使⽤java.sql.Date类型,若对应的是MSsqlserver数据库的DateTime类型。
既需要年⽉⽇时分秒的,选择java.sql.Timestamp类型。你可以使⽤dateFormat定义时间⽇期的格式,转⼀个字符串即可。
package personal.jessica;
import java.util.Date;
import java.util.Calendar;
import java.sql.Timestamp;
DateFormat;
SimpleDateFormat;
import java.util.Locale;
class Datetest{
/**
*method 将字符串类型的⽇期转换为⼀个timestamp(时间戳记java.sql.Timestamp)
dateString 需要转换为timestamp的字符串
dataTime timestamp
*/
public final static java.sql.Timestamp string2Time(String dateString)
ParseException {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式
/
/dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
//Timestamp类型,Time()返回⼀个long型
java.sql.Timestamp dateTime = new java.sql.Time());
return dateTime;
}
/**
oracle 时间转换*method 将字符串类型的⽇期转换为⼀个Date(java.sql.Date)
dateString 需要转换为Date的字符串
dataTime Date
*/
public final static java.sql.Date string2Date(String dateString)
throws java.lang.Exception {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Date dateTime = new java.sql.Time());//sql类型
return dateTime;
}
public static void main(String[] args){
Date da = new Date();
//注意:这个地⽅da.getTime()得到的是⼀个long型的值
System.out.Time());
//由⽇期date转换为timestamp
//第⼀种⽅法:使⽤new Timestamp(long)
Timestamp t = new Timestamp(new Date().getTime());
System.out.println(t);
//第⼆种⽅法:使⽤Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)
Timestamp tt = new Instance().get(
Calendar.YEAR) - 1900, Instance().get(
Calendar.MONTH), Instance().get(
Calendar.DATE), Instance().get(
Calendar.HOUR), Instance().get(
Calendar.MINUTE), Instance().get(
Calendar.SECOND), 0);
System.out.println(tt);
try {
String sToDate = "2005-8-18";//⽤于转换成java.sql.Date的字符串
String sToTimestamp = "2005-8-18 14:21:12.123";//⽤于转换成java.sql.Timestamp的字符串
Date date1 = string2Date(sToDate);
Timestamp date2 = string2Time(sToTimestamp);
System.out.println("Date:"+String());//结果显⽰
System.out.println("Timestamp:"+String());//结果显⽰
}catch(Exception e) {
e.printStackTrace();
}
}
}///:~
怎样处理⼀个时间段,⽐如某⼈登陆了xx天xx⼩时xx分xx秒。
这个问题可以如下处理:
⾸先你肯定可以从数据库中读取这个⽤户第⼀次登陆的具体时间:不妨为2002-01-01 12:00:00
同样他到⽬前为⽌最后登陆的具体时间:不妨为2002-09-08 13:14:15
若取得是数据本来就是时间类型的,则不⽤转化,若是String的则可以在转化后处理。
你可以利⽤类似上⾯的例⼦,取得这两个时间对应的Timestamp值dateTime;然后使⽤Time()⽅法得到这两个时间的long值,进⾏相减(⼤的减⼩的,即按时间后减先),得到⼀个long值,它是⽤毫秒milliseconds计算的,你将它换算⼀下就知道多少天多少⼩时多少分多少秒了,⽐如⾸先除于(java中/除)⼀天的毫秒数,得到天,然后⽤余下的值除于⼀⼩时的毫秒数,得到⼩时……最后就可以得到所有的需求了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。