将String型的“****年**月**日”转换成Date型

    技术2022-05-20  59

    将String型的“****年**月**日”转换成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);

    对参数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应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是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)* @param dateString 需要转换为timestamp的字符串* @return 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)*@param dateString 需要转换为Date的字符串*@return 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();    } } }

     


    最新回复(0)