关于编程语言中的时间格式和关系型数据中的中时间格式问题的转化一直都是个简单而又不得不权衡的问题,这牵扯到数据库设计和SQL编程和应用程序中时间格式数据的处理的编程,两者总能够交缠在一起。
关于Java中的时间格式和数据库中的时间格式转换在这里先写两个方法:
/**
*
* @param utilDate
* @return
*/
publicstaticjava.sql.Date convertUtilDateToSqlDate(java.util.Date utilDate) {
java.sql.Date sqlDate =newjava.sql.Date(utilDate.getTime());
returnsqlDate;
}
/**
*
* @param sqlDate
* @return
*/
publicstaticjava.util.Date convertSqlDateToUtilDate(java.sql.Date sqlDate){
java.util.Date utilDate =newjava.util.Date(sqlDate.getTime());
returnutilDate;
}
普通的转换是很容的,但是想要获取到一定的格式就得下些功夫了。
1.从应用程序中向数据库中写入字段类型为Date类型的数据
比如:PreparedStatement.setDate(int ,java.sql.Date)方法 说明:其中的java.sql.Date可以用上面的方法转化得到
比如:TO_DATE(new SimpleDateFormat().format(ud,"yyyy-MM-dd HH:mm:ss"),"YYYY- MM-DD HH24:MI:SS")
可以通过SQL语句进行处理:SQL=“UPDATE TABLENAME SET TIMER = TO_DATE(" "+ TIMEMISS +" ", ' yyyymmddhh24miss' ) WHERR ... ” 注 TIMEMISS 为变量 例如:20080522131223 类型
2. 将指定格式的字符串转换为数据库的时间类型java.sql.Date
通过如下方法可以实现:
方法一:
publicstaticjava.sql.Date convertStringToSqlDate(String formatStr, String timeStr) {
SimpleDateFormat bartDateFormat =newSimpleDateFormat(formatStr);
java.sql.Date sqlDate =null;
try{
java.util.Date date = bartDateFormat.parse(timeStr);
sqlDate =newjava.sql.Date(date.getTime());
System.out.println(sqlDate.getTime());
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
returnsqlDate;
}
方法二:
String strDate ="2002-08-09";
StringTokenizer st =newStringTokenizer(strDate,"-");
java.sql.Date date =newjava.sql.Date(Integer.parseInt(st.nextToken()));
这样通过不同的方式都可以解决这个问题。