Timestamp有两个构造方法: new Timestmap(Long),就是上面java.sql.Timestamp now = new java.sql.Timestamp((new java.util.Date()).getTime());的方法,((new java.util.Date()).getTime()返回的是个Long 还有new Timestamp(int year,int month,int date,int hour,int minute,int second,int millisecond),印象中生成是int year = 当前年 - 1400,int month = 当前月 - 1 不过这个构造方法不是不推荐的 EJB里DATE型的字段用setTimestamp(column,Timestamp)来设。 在开发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) *@paramdateString 需要转换为timestamp的字符串 *@returndataTime 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) *@paramdateString 需要转换为Date的字符串 *@returndataTime 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(); } } } |
|
来自: 昵称27831725 > 《Mysql数据库》