java.sql.timestamp

java.sql.timestamp 怎么把一个java.util.Date类型转化成java.sql.Timestamp类型呢?


很简单,我们可以这样声明
Timestamp ts = new Timestamp(new Date().getTime());
这样我们就可以得到时间比较具体的一个类型转换!!!


在开发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;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;

public class Datetest {
	/**
	 * method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp) dateString
	 * 需要转换为timestamp的字符串 dataTime timestamp
	 */
	public final static java.sql.Timestamp string2Time(String dateString)
			throws java.text.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类型
		java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());// Timestamp类型,timeDate.getTime()返回一个long型
		return dateTime;
	}

	/**
	 * 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.Date(timeDate.getTime());// sql类型
		return dateTime;
	}

	public static void main(String[] args) {
		Date da = new Date();
		// 注意:这个地方da.getTime()得到的是一个long型的值
		System.out.println(da.getTime());

		// 由日期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)
		@SuppressWarnings("deprecation")
		Timestamp tt = new Timestamp(
				Calendar.getInstance().get(Calendar.YEAR) - 1900, 
				Calendar.getInstance().get(Calendar.MONTH), 
				Calendar.getInstance().get(Calendar.DATE), 
				Calendar.getInstance().get(Calendar.HOUR), 
				Calendar.getInstance().get(Calendar.MINUTE), 
				Calendar.getInstance().get(Calendar.SECOND), 0);
		System.out.println(tt);
		
		System.out.println("=======================================");
		
		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:" + date1.toString());// 结果显示
			System.out.println("Timestamp:" + date2.toString());// 结果显示
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


怎样处理一个时间段,比如某人登陆了xx天xx小时xx分xx秒


这个问题可以如下处理:
首先你肯定可以从数据库中读取这个用户第一次登陆的具体时间:
不妨为2002-01-01 12:00:00
同样他到目前为止最后登陆的具体时间:
不妨为2002-09-08 13:14:15
若取得是数据本来就是时间类型的,则不用转化,若是String的则可以在转化后处理。
你可以利用类似上面的例子,取得这两个时间对应的Timestamp值dateTime
然后使用dateTime.getTime()方法得到这两个时间的long值,进行相减(大的减小的,即按时间后减先),得到一个long值,它是用毫秒milliseconds计算的,你将它换算一下就知道多少天多少小时多少分多少秒了
比如首先除于(java中/除)一天的毫秒数,得到天,然后用余下的值除于一小时的毫秒数,得到小时……最后就可以得到所有的需求了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章