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中/除)一天的毫秒數,得到天,然後用餘下的值除於一小時的毫秒數,得到小時……最後就可以得到所有的需求了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章