Java 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; 
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) 
  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); 

  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中/除)一天的毫秒數,得到天,然后用余下的值除於一小時的毫秒數,得到小時……最后就可以得到所有的需求了

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM