日期在String和Date类型转换ParsePo

发布时间:


日期在String Date类型转换
ParsePo String 型的"***"转换成Dateprivate Date DTStri ngtoDate(Stri ng 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 ! =n ull{ts=new java.sql.Timestamp(datetime.getTime( ; }return ts ; } ; 分析如下:1.ParsePositio n pos=new ParsePositio n(0 ;从第一个字符

开始解析
public class ParsePosition extends Object ParsePosition Format及其子类所使用的简单类,用来在分析过程中跟踪当前位置。
2java.util.Date datetime=formatter.parse(dtToDate,pos
; 对参数dtToDate(String 类型从第一个字符开始解析(pos,转换成
java.util.Date 类型,而这个 Date的格式为"yyyy-MM-dd"(因为 SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd" 3.java.sql.Timestamp(
java.sql.Date
在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序 中对日期类型做各种不同的转换。若对应数据库数据是 即只需要年月日的,可以选择使用java.sql.Date oracleDate类型,
类型,若对应的是
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*@param dateString timestamp 的字符串 *@return dataTime timestamp*/public final static java.sql.Timestamp stri ng2Time(Stri ng dateStri ngthrows 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
timeDate=dateFormat.parse(dateString
java.util.Date //util 类型
java.sql.Timestamp dateTime=new java.sql.Timestamp(timeDate.getTime( //Timestamp
,timeDate.getTime( 返回一个 long return dateTime }/**method 将字 串类型的日期转换为一个
Date(java.sql.Date*@param dateStri ng 需要转
换为 Date 的字符串
*@return dataTime Date*/public final static java.sql.Date stri ng2Date(Stri ng dateStri ngthrows javaang.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(longTimestamp t=new Timestamp(new Date(.getTime( System.out.println(t
// 第二种方法:使用 Timestamp(int year,int month,int date,int hour,i nt minu te,i nt sec on d,i nt nano Timestamp tt=new Timestamp(Cale ndar.getl nsta nce(.get(Cale ndar.YEAR- 1900,Cale ndar.get In sta nce(.get(Cale ndar.MONTH,Cale ndar.get In sta nce( .get(Cale ndar.DATE,Cale ndar.getl nsta nce(.get(Cale ndar.HOUR,Cale nd ar.get In sta nce(.get(Cale ndar.MINUTE,Cale ndar.getl nsta nce(.get(Cale


ndar.SECOND,0 System.out.println(tt ; try{String sToDate="2005-8-18" ; // 用于转换成 java.sql.Date 的字符 : 21: 12.123" ; // 用于转换成

String sToTimestamp="2005-8-18 14
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小时xxxx
xx
这个问题可以如下处理:首先你肯定可以从数据库中读取这个用户第一次 登陆的具体时间:不妨为2002-01-01 12 : 00 00同样他到目前为止最后登陆 的具体时间:不妨为2002-09-08 13 : 14 15若取得是数据本来就是时间类型 的,则不用转化,若是Stri ng的则可以在转化后处理。你可以利用类似上面的 例子,取得这两个时间对应的 TimestampdateTime然后使用 dateTime.getTime(方法得到这两个时间long值,进行相减(大的减小的, 即按时间后减先,得到一个long值,它是用毫milliseconds 计算的,你将 它换算一下就知道多少天多少小时多少分多少秒了比如首先除于
(java/
一天的毫秒数,得到天,然后用余下的值除于一小时的毫秒数,得到小时…最 后就可以得到所有的需求了


日期在String和Date类型转换ParsePo

相关推荐