StringタイプとDateタイプ間の日付の変換


日付はStringとDateタイプで変換されます.ParsePosition,formatter.parse,java.sql.T...
String型の「****年**月**日」をDate型private Date DTStringtoDate(String dtToDate){SimpleDateFormat=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);
パラメータdtToDate(Stringタイプ)を最初の文字から解析(pos)し、javaに変換する.util.Dateタイプであり、このDateのフォーマットは「yyyy-MM-dd」(SimpleDateFormatter=new SimpleDateFormat(「yyyyy-MM-dd」)である.
3. java.sql.Timestamp(java.sql.Date)
Webアプリケーションの開発では、異なるデータベースの日付タイプに対して、私たちのプログラムで日付タイプをさまざまな変換する必要があります.対応するデータベースデータがoracleのDateタイプ、すなわち年月日のみ必要な場合はjavaを選択することができる.sql.Dateタイプは、MSsqlserverデータベースのDateTimeタイプ、すなわち年月日分秒が必要な場合はjavaを選択する.sql.TimestampタイプdateFormatを使用して日付のフォーマットを定義し、文字列を1つ回すことができます.
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)*@param dateString timestampの文字列*@return dataTime timestamp*/public final static java.sql.Timestamp string 2 Time(String dateString)throws java.text.ParseException{DateFormat dateFormat;dateFormat=new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",Locle.ENGLISH);//フォーマット//dateFormat=new SimpleDateFormat("yyyy-MM-ddkk:mm:ss",Locle.ENGLISH);dateFormat.setLenient(false);java.util.Date timeDate=dateFormat.parse(dateString);//义齿sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestampタイプ、timeDate.getTime()はlong型return dateTimeを返します;}/***method文字列タイプの日付をDate(java.sql.Date)*@param dateStringに変換するにはDateの文字列*@return dataTime Date*/public final static javaに変換する必要がある.sql.Date string2Date(String dateString)   throws java.lang.Exception{DateFormat dateFormat;dateFormat=new SimpleDateFormat("yyyyyyy-M-dd",Locle.ENGLISH);dateFormat.setLenient(false);java.util.Date timeDate=dateFormat.parse(dateString);///utilタイプjava.sql.Date dateTime=new java.sql.Date(timeDate.getTime();/sqlタイプreturndatedatedateFormat();/sqlタイプTime;}public static void main(String[]args){Date da=new Date();//注意:ここでda.gettime()はlong型の値System.out.println(da.gettime();//日付dateからtimestamp//第1の方法: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 date 1=string 2 Date(sToDate);Timestamp date 2=string 2 Time(sToTimestamp);System.out.println("Date:"+date 1.toString(););//結果はSystem.out.println("Timestamp:"+date2.toString());//結果表示}catch(Exception e){e.printStackTrace();}}}}}============================================================
この問題は以下のように処理することができます.まず、このユーザーが初めてログインした具体的な時間をデータベースから読み取ることができます.2002-01-01 12:00:00と同じように、彼がこれまで最後にログインした具体的な時間です.2002-09-08 13:14:15にデータがもともと時間タイプであると取得したら、変換しなくてもいいです.Stringの場合は変換後に処理することができます.上記の例と同様に、この2つの時間に対応するTimestamp値dateTimeを取得し、dateTimeを使用することができます.gettime()メソッドは、この2つの時間のlong値を得て、減算(大きな減算、すなわち時間後に減算)を行い、ミリ秒millisecondsで計算されたlong値を得ます.これを換算すると、何日何時間何分何秒であるかがわかります.例えば、最初に(java中/除)日に除かれたミリ秒数で、日が得られます.そして残りの値で1時間のミリ秒数を除いて、時間を得る......最後にすべての需要を得ることができます
安全のために、ソースの信頼できるWebサイトだけを開いてください.
Webサイトを開く      キャンセル
ソース:
http://hi.baidu.com/%B8%FD%C4%C4/blog/item/280b4f1807ab4b4f43a9adbf.html