将String型的“****年**月**日”转换成Date型
2011-02-25 16:45
567 查看
将String型的“****年**月**日”转换成Date型
privateDateDTStringtoDate(StringdtToDate){
SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");
ParsePositionpos=newParsePosition(0);
java.util.Datedatetime=formatter.parse(dtToDate,pos);
java.sql.Timestampts=null;
if(datetime!=null){
ts=newjava.sql.Timestamp(datetime.getTime());
}
returnts;
}
分析如下:
[b]1.[/b]ParsePositionpos=newParsePosition(0);从第一个字符开始解析
publicclassParsePositionextendsObject
2.java.util.Datedatetime=formatter.parse(dtToDate,pos);
对参数dtToDate(String类型)从第一个字符开始解析(由pos),转换成java.util.Date类型,
而这个Date的格式为"yyyy-MM-dd"(因为SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");)
3.java.sql.Timestamp(与java.sql.Date)
在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,
若对应的是MSsqlserver数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型
你可以使用dateFormat定义时间日期的格式,转一个字符串即可
packagepersonal.jessica;
importjava.util.Date;
importjava.util.Calendar;
importjava.sql.Timestamp;
importjava.text.DateFormat;
importjava.text.SimpleDateFormat;
importjava.util.Locale;
classDatetest{
/**
*method将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)
*@paramdateString需要转换为timestamp的字符串
*@returndataTimetimestamp
*/
publicfinalstaticjava.sql.Timestampstring2Time(StringdateString)
throwsjava.text.ParseException{
DateFormatdateFormat;
dateFormat=newSimpleDateFormat("yyyy-MM-ddkk:mm:ss.SSS",Locale.ENGLISH);//设定格式
//dateFormat=newSimpleDateFormat("yyyy-MM-ddkk:mm:ss",Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.DatetimeDate=dateFormat.parse(dateString);//util类型
java.sql.TimestampdateTime=newjava.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
returndateTime;
}
/**
*method将字符串类型的日期转换为一个Date(java.sql.Date)
*@paramdateString需要转换为Date的字符串
*@returndataTimeDate
*/
publicfinalstaticjava.sql.Datestring2Date(StringdateString)
throwsjava.lang.Exception{
DateFormatdateFormat;
dateFormat=newSimpleDateFormat("yyyy-MM-dd",Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.DatetimeDate=dateFormat.parse(dateString);//util类型
java.sql.DatedateTime=newjava.sql.Date(timeDate.getTime());//sql类型
returndateTime;
}
publicstaticvoidmain(String[]args){
Dateda=newDate();
//注意:这个地方da.getTime()得到的是一个long型的值
System.out.println(da.getTime());
//由日期date转换为timestamp
//第一种方法:使用newTimestamp(long)
Timestampt=newTimestamp(newDate().getTime());
System.out.println(t);
//第二种方法:使用Timestamp(intyear,intmonth,intdate,inthour,intminute,intsecond,intnano)
Timestamptt=newTimestamp(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{
StringsToDate="2005-8-18";//用于转换成java.sql.Date的字符串
StringsToTimestamp="2005-8-1814:21:12.123";//用于转换成java.sql.Timestamp的字符串
Datedate1=string2Date(sToDate);
Timestampdate2=string2Time(sToTimestamp);
System.out.println("Date:"+date1.toString());//结果显示
System.out.println("Timestamp:"+date2.toString());//结果显示
}catch(Exceptione){
e.printStackTrace();
}
}
}
privateDateDTStringtoDate(StringdtToDate){
SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");
ParsePositionpos=newParsePosition(0);
java.util.Datedatetime=formatter.parse(dtToDate,pos);
java.sql.Timestampts=null;
if(datetime!=null){
ts=newjava.sql.Timestamp(datetime.getTime());
}
returnts;
}
分析如下:
[b]1.[/b]ParsePositionpos=newParsePosition(0);从第一个字符开始解析
publicclassParsePositionextends
ParsePosition是
Format及其子类所使用的简单类,用来在分析过程中跟踪当前位置。
2.java.util.Datedatetime=formatter.parse(dtToDate,pos);
对参数dtToDate(String类型)从第一个字符开始解析(由pos),转换成java.util.Date类型,
而这个Date的格式为"yyyy-MM-dd"(因为SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");)
3.java.sql.Timestamp(与java.sql.Date)
在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,
若对应的是MSsqlserver数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型
你可以使用dateFormat定义时间日期的格式,转一个字符串即可
packagepersonal.jessica;
importjava.util.Date;
importjava.util.Calendar;
importjava.sql.Timestamp;
importjava.text.DateFormat;
importjava.text.SimpleDateFormat;
importjava.util.Locale;
classDatetest{
/**
*method将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)
*/
publicfinalstaticjava.sql.Timestampstring2Time(StringdateString)
throwsjava.text.ParseException{
DateFormatdateFormat;
dateFormat=newSimpleDateFormat("yyyy-MM-ddkk:mm:ss.SSS",Locale.ENGLISH);//设定格式
//dateFormat=newSimpleDateFormat("yyyy-MM-ddkk:mm:ss",Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.DatetimeDate=dateFormat.parse(dateString);//util类型
java.sql.TimestampdateTime=newjava.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
returndateTime;
}
/**
*method将字符串类型的日期转换为一个Date(java.sql.Date)
*/
publicfinalstaticjava.sql.Datestring2Date(StringdateString)
throwsjava.lang.Exception{
DateFormatdateFormat;
dateFormat=newSimpleDateFormat("yyyy-MM-dd",Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.DatetimeDate=dateFormat.parse(dateString);//util类型
java.sql.DatedateTime=newjava.sql.Date(timeDate.getTime());//sql类型
returndateTime;
}
publicstaticvoidmain(String[]args){
Dateda=newDate();
//注意:这个地方da.getTime()得到的是一个long型的值
System.out.println(da.getTime());
//由日期date转换为timestamp
//第一种方法:使用newTimestamp(long)
Timestampt=newTimestamp(newDate().getTime());
System.out.println(t);
//第二种方法:使用Timestamp(intyear,intmonth,intdate,inthour,intminute,intsecond,intnano)
Timestamptt=newTimestamp(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{
StringsToDate="2005-8-18";//用于转换成java.sql.Date的字符串
StringsToTimestamp="2005-8-1814:21:12.123";//用于转换成java.sql.Timestamp的字符串
Datedate1=string2Date(sToDate);
Timestampdate2=string2Time(sToTimestamp);
System.out.println("Date:"+date1.toString());//结果显示
System.out.println("Timestamp:"+date2.toString());//结果显示
}catch(Exceptione){
e.printStackTrace();
}
}
}
相关文章推荐
- Java中String型与Date型数据的互相转换
- java中一个String型时间转换成JAVA.SQL.DATE型时间在添加到SQL Server中的datetime型字段里(
- JAVA功能代码《4》----在Java中将String型转换成Date型
- JAVA功能代码《4》----在Java中将String型转换成Date型
- 【java】Date型、String型、Timestamp型互相转换小结
- 将String型的“xxxx年xx月xx日”转换成Date型
- Oracle中根据Date型转换成Java对应的long型毫秒数
- C++中int型与string型互相转换
- c++中double转换成string型(浮点数的格式化)
- struts2 类型转换器 Date型数据转换
- 枚举型enum与int型、String型的转换(总结)
- C++中int型与string型互相转换
- CString与string类型互相转换、CString转化为LPCSTR、TCHAR转化为CString、CString型字符串连接
- 【Mybatis】Date型和String型的时间类型和格式转换
- c++中double转换成string型(浮点数的格式化)(转)
- InetAddress与String类型的转换,byte[]型与String型转换,编码解码
- struts2 类型转换器 Date型数据转换
- 用js将long型数据转换成date型或datetime型
- C++中int型与string型互相转换
- int、char、string型字符相互转换