public List<PrjInfo> findPrjInfo() throws ParseException {
String sql = "SELECT * FROM voole_prjinfo ";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
PrjInfo info = null;
try {
conn = DbUtil.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()) {
info = new PrjInfo();
info.setPrj_id(rs.getString("prj_id"));
info.setPrj_name(rs.getString("prj_name"));
info.setPrj_constructdep(rs.getString("prj_constructdep"));
info.setPrj_startdate((Date) rs.getObject("prj_startdate"));
System.out.print(rs.getDate("prj_constructdep"));
infolist.add(info);
}
}catch(SQLException e) {
e.printStackTrace();
}finally {
DbUtil.close(rs);
DbUtil.close(pstmt);
DbUtil.close(conn);
}
return infolist;
}最近在一个小项目,现在从数据库读取日期时遇到问题,试了好多办法还是没有解决,求助
import java.text.SimpleDateFormat;
public class Demo
{
public static void main(String[] args)
{
Date now=new Date();
SimpleDateFormat f=newSimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分");
System.out.println(f.format(now));
f=new SimpleDateFormat("a hh点mm分ss秒");
System.out.println(f.format(now));
}
}
2 从字符串到日期类型的转换:import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.text.*;
publicclass Demo
{
public static void main(String[] args)
{
String strDate="2005年04月22日";
//注意:SimpleDateFormat构造函数的样式与strDate的样式必须相符
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日 ");
SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //加上时间
//必须捕获异常 try
{
Date date=simpleDateFormat.parse(strDate);
System.out.println(date);
}
catch(ParseException px)
{
px.printStackTrace();
}
}
}
3 将毫秒数换转成日期类型import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.text.*;
public class Demo
{
public static void main(String[] args)
{
long now=System.currentTimeMillis();
System.out.println("毫秒数:"+now);
Date dNow=new Date(now);
System.out.println("日期类型:"+dNow);
}
}
这3例源自http://blog.csdn.net/zhoujian2003/archive/2005/04/22/358363.aspx4 获取系统时期和时间,转换成SQL格式后更新到数据库(http://blog.csdn.net/netrope/archive/2005/11/19/532729.aspx)java.util.Date d=new java.util.Date(); //获取当前系统的时间 //格式化日期new java.text.SimpleDateFormat s= new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateStr = s.format(d); //转为字符串 -----------------------------------------------------------------------比较日期大小import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class test { public static void main(String args[]) {
int i= compare_date("1995-11-12 15:21", "1999-12-11 09:59");
System.out.println("i=="+i);
} public static int compare_date(String DATE1, String DATE2) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() > dt2.getTime()) {
System.out.println("dt1 在dt2前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
System.out.println("dt1在dt2后");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
}
info.setPrj_startdate((Date) rs.getObject("prj_startdate"));
这里,直接用字符串型式取出来 rs.getString("prj_startdate");然后再用我上面的方法 转成时间类型。 可以实现LZ 的问题
本来应该是2011-11-08
直接用info.setPrj_startdate( rs.getDate("prj_startdate"));就可以了
一开始不知道为什么用这个不行,感谢各位的回答