package
test;
import
java.text.DateFormat;
import
java.text.SimpleDateFormat;
import
java.text.ParseException;
import
java.util.Date;
public
class
StringOrDate {
public
static
String dateToString(Date date, String type) {
String str =
null
;
DateFormat format =
new
SimpleDateFormat(
"yyyy-MM-dd"
);
if
(type.equals(
"SHORT"
)) {
// 07-1-18
format = DateFormat.getDateInstance(DateFormat.SHORT);
str = format.format(date);
}
else
if
(type.equals(
"MEDIUM"
)) {
// 2007-1-18
format = DateFormat.getDateInstance(DateFormat.MEDIUM);
str = format.format(date);
}
else
if
(type.equals(
"FULL"
)) {
// 2007年1月18日 星期四
format = DateFormat.getDateInstance(DateFormat.FULL);
str = format.format(date);
}
return
str;
}
public
static
Date stringToDate(String str) {
DateFormat format =
new
SimpleDateFormat(
"yyyy-MM-dd"
);
Date date =
null
;
try
{
// Fri Feb 24 00:00:00 CST 2012
date = format.parse(str);
}
catch
(ParseException e) {
e.printStackTrace();
}
//以上这种转出来不能直接参与和数据库date的比较
// 2012-02-24
date = java.sql.Date.valueOf(str);
return
date;
}
public
static
void
main(String[] args) {
Date date =
new
Date();
System.out.println(StringOrDate.dateToString(date,
"MEDIUM"
));
String str =
"2012-2-24"
;
System.out.println(StringOrDate.stringToDate(str));
}
}
要说明的是如果采用的是
要实现能查询出来则要使用
时间区间的话在sql中用between记得时间要加引号
在hql中的话setDate记得里面的date用的是java.sql.date火车java.sql.timestamp
配置文件则加<property name="format_sql">true</property>
再加上这个的话:
hibernate.use_sql_comments = true
[可读性 + 可定位性]会更好
不过,这两个一起来的话也会造成SQL在console中显示的篇幅很大。