一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

日期在String和Date類型轉(zhuǎn)換;ParsePosition,formatter.parse,java.sql.Timestamp

 520jefferson 2014-05-03
將String型的“****年**月**日”轉(zhuǎn)換成Date型
private Date DTStringtoDate(String dtToDate){
  
   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
   ParsePosition pos = new ParsePosition(0);   
   java.util.Date datetime = formatter.parse(dtToDate, pos); 
   java.sql.Timestamp ts = null;  
  
   if(datetime != null){ 
   
    ts = new java.sql.Timestamp(datetime.getTime());
   }
  
   return ts; 
}
分析如下:
1. ParsePosition pos = new ParsePosition(0);       從第一個字符開始解析

public class ParsePosition extends Object
ParsePosition 是 Format 及其子類所使用的簡單類,用來在分析過程中跟蹤當前位置。
2. java.util.Date datetime = formatter.parse(dtToDate, pos);
對參數(shù)dtToDate(String類型)從第一個字符開始解析(由pos),轉(zhuǎn)換成java.util.Date類型,
而這個Date的格式為"yyyy-MM-dd"(因為SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");)
3. java.sql.Timestamp(與java.sql.Date)
在開發(fā)web應(yīng)用中,針對不同的數(shù)據(jù)庫日期類型,我們需要在我們的程序中對日期類型做各種不同的轉(zhuǎn)換。若對應(yīng)數(shù)據(jù)庫數(shù)據(jù)是oracle的Date類型,即只需要年月日的,可以選擇使用java.sql.Date類型,
若對應(yīng)的是MSsqlserver數(shù)據(jù)庫的DateTime類型,即需要年月日時分秒的,選擇java.sql.Timestamp類型
你可以使用dateFormat定義時間日期的格式,轉(zhuǎn)一個字符串即可
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 將字符串類型的日期轉(zhuǎn)換為一個timestamp(時間戳記java.sql.Timestamp)
dateString 需要轉(zhuǎn)換為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);//設(shè)定格式
   //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 將字符串類型的日期轉(zhuǎn)換為一個Date(java.sql.Date)
dateString 需要轉(zhuǎn)換為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轉(zhuǎn)換為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";//用于轉(zhuǎn)換成java.sql.Date的字符串
       String sToTimestamp = "2005-8-18 14:21:12.123";//用于轉(zhuǎn)換成java.sql.Timestamp的字符串
      Date date1 = string2Date(sToDate);
      Timestamp date2 = string2Time(sToTimestamp);
    System.out.println("Date:"+date1.toString());//結(jié)果顯示
    System.out.println("Timestamp:"+date2.toString());//結(jié)果顯示
   }catch(Exception e) {
    e.printStackTrace();
   }
}
}

===========================
怎樣處理一個時間段,比如某人登陸了xx天xx小時xx分xx秒
這個問題可以如下處理:
首先你肯定可以從數(shù)據(jù)庫中讀取這個用戶第一次登陸的具體時間:
不妨為2002-01-01 12:00:00
同樣他到目前為止最后登陸的具體時間:
不妨為2002-09-08 13:14:15
若取得是數(shù)據(jù)本來就是時間類型的,則不用轉(zhuǎn)化,若是String的則可以在轉(zhuǎn)化后處理。

你可以利用類似上面的例子,取得這兩個時間對應(yīng)的Timestamp值dateTime
然后使用dateTime.getTime()方法得到這兩個時間的long值,進行相減(大的減小的,即按時間后減先),得到一個long值,它是用毫秒milliseconds計算的,你將它換算一下就知道多少天多少小時多少分多少秒了
比如首先除于(java中/除)一天的毫秒數(shù),得到天,然后用余下的值除于一小時的毫秒數(shù),得到小時……最后就可以得到所有的需求了

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美日韩国产精品自在自线 | 欧美激情一区二区亚洲专区| 日韩精品视频免费观看| 五月综合激情婷婷丁香| 亚洲国产精品av在线观看| 99久久婷婷国产亚洲综合精品| 五月婷婷六月丁香狠狠| 日本不卡视频在线观看| 亚洲综合色婷婷七月丁香| 国产成人精品一区二区三区| 色老汉在线视频免费亚欧| 亚洲高清一区二区高清| 日韩不卡一区二区三区色图| 老富婆找帅哥按摩抠逼视频| 欧美日韩国产一级91| 欧洲一区二区三区自拍天堂| 中文字幕乱码免费人妻av| 国产日韩欧美综合视频| 青青草草免费在线视频| 丰满少妇被粗大猛烈进出视频| 夫妻性生活一级黄色录像| 91播色在线免费播放| 91久久精品国产一区蜜臀| 国产主播精品福利午夜二区| 中文字幕中文字幕一区二区| 国产户外勾引精品露出一区| 日韩特级黄片免费观看| 亚洲中文字幕视频在线播放| 夫妻性生活动态图视频| 成人综合网视频在线观看| 日韩一本不卡在线观看| 国产欧洲亚洲日产一区二区| 欧美国产日韩在线综合| 亚洲精品国产第一区二区多人| 国产一区二区三区午夜精品| 国产精品白丝久久av| 成人综合网视频在线观看| 精品国产品国语在线不卡| 欧美精品在线观看国产| 午夜视频成人在线观看| 日本黄色录像韩国黄色录像|