JAVA操作数据库Datetime数据
2013-10-18 17:32
337 查看
如何将Date类型插入数据库中,成为好多人的一个不小的障碍。
当然,并不一定要在外部插入时间,因为在数据库中,可以让它自动插入,比如:MSSQL里面,用getdate()来插入当前时间,而在Insert时,便可以不用管它了。但有的时候还是避免不了,要手工插入时间,以更新数据库。
1、java.util.Calendar 格式化时间
Calendar cal =
new GregorianCalendar();//Calendar cal=Calendar.getInstance();得到当前系统的日期和时间//cal.setTime(Date d)//将指定的日期时间设置到Calendar对象上去.
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
int day = cal.get(Calendar.DAY_OF_MONTH);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
String week = "";
switch(dayOfWeek) {
case 1:
week = "星期天"; break;
case 2:
week = "星期一"; break;
case 3:
week = "星期二"; break;
case 4:
week = "星期三"; break;
case 5:
week = "星期四"; break;
case 6:
week = "星期五"; break;
default:
week = "星期六"; break;
int hour = cal.get(Calendar.HOUR_OF_DAY); // 24小时制
// int hour = cal.get(Calendar.HOUR); // 12小时制
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
String h,m,s;
if(hour<10) h = "0"+hour;
else h = hour+"";
if(minute<10) m =
"0"+minute; else m = minute+"";
if(second<10) s =
"0"+second; else s = second+"";
在JSP中输出是:
今天是: <%=year%>年<%=month%>月<%=day%>日<%=week%> <%=h%>:<%=m%>:<%=s%>
结果:
今天是: 2006年4月14日星期五 05:35:26
2、在数据库中插入时间
PreparedStatement ps = con.prepareStatement("insert into TableName(dAddTime) values(?)");
这里有三种方式:
1) ps.setDate(1,new java.sql.Date(System.currentTimemillis()));
2) ps.setTime(2,new java.sql.Time(System.currentTimemillis()));
3) ps.setTimestamp(3,new java.sql.Timestamp(System.currentTimemillis()));
第一种只插入年月日 0000-00-00
第二种只插入时间 00:00:00
第三种则插入完整的时间 0000-00-00 00:00:00.000 .000是毫秒数。
3、取出数据库时间
通常只有两种:
1) getDate(String colname);
// 取出日期 格式:0000-00-00
2) getTimestamp(String colname);
// 取出日期和时间 格式:0000-00-00 00:00:00.000
3) getTime(String colname);
// 只取出时间部份 格式:00:00:00 几乎不用,因为没有人只会取出时间,而不用日期。
在JDK 1.1后,java.util.Date 类型的大多数方法已经不推荐使用了。代替它的是Calendar。
而在java.sql.Date 和 java.util.Date之间,有些微妙的关系。
当然,并不一定要在外部插入时间,因为在数据库中,可以让它自动插入,比如:MSSQL里面,用getdate()来插入当前时间,而在Insert时,便可以不用管它了。但有的时候还是避免不了,要手工插入时间,以更新数据库。
1、java.util.Calendar 格式化时间
Calendar cal =
new GregorianCalendar();//Calendar cal=Calendar.getInstance();得到当前系统的日期和时间//cal.setTime(Date d)//将指定的日期时间设置到Calendar对象上去.
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
int day = cal.get(Calendar.DAY_OF_MONTH);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
String week = "";
switch(dayOfWeek) {
case 1:
week = "星期天"; break;
case 2:
week = "星期一"; break;
case 3:
week = "星期二"; break;
case 4:
week = "星期三"; break;
case 5:
week = "星期四"; break;
case 6:
week = "星期五"; break;
default:
week = "星期六"; break;
int hour = cal.get(Calendar.HOUR_OF_DAY); // 24小时制
// int hour = cal.get(Calendar.HOUR); // 12小时制
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
String h,m,s;
if(hour<10) h = "0"+hour;
else h = hour+"";
if(minute<10) m =
"0"+minute; else m = minute+"";
if(second<10) s =
"0"+second; else s = second+"";
在JSP中输出是:
今天是: <%=year%>年<%=month%>月<%=day%>日<%=week%> <%=h%>:<%=m%>:<%=s%>
结果:
今天是: 2006年4月14日星期五 05:35:26
2、在数据库中插入时间
PreparedStatement ps = con.prepareStatement("insert into TableName(dAddTime) values(?)");
这里有三种方式:
1) ps.setDate(1,new java.sql.Date(System.currentTimemillis()));
2) ps.setTime(2,new java.sql.Time(System.currentTimemillis()));
3) ps.setTimestamp(3,new java.sql.Timestamp(System.currentTimemillis()));
第一种只插入年月日 0000-00-00
第二种只插入时间 00:00:00
第三种则插入完整的时间 0000-00-00 00:00:00.000 .000是毫秒数。
3、取出数据库时间
通常只有两种:
1) getDate(String colname);
// 取出日期 格式:0000-00-00
2) getTimestamp(String colname);
// 取出日期和时间 格式:0000-00-00 00:00:00.000
3) getTime(String colname);
// 只取出时间部份 格式:00:00:00 几乎不用,因为没有人只会取出时间,而不用日期。
在JDK 1.1后,java.util.Date 类型的大多数方法已经不推荐使用了。代替它的是Calendar。
而在java.sql.Date 和 java.util.Date之间,有些微妙的关系。
相关文章推荐
- Mybatis_spring 整合总结——1
- Java:String和Date、Timestamp之间的转换
- java 更新mysql数据库中表格信息
- spring security 获取当前用户信息
- java 查询mysql数据库表格数据
- java 创建mysql数据表
- myeclipse快捷键
- LDAP学习笔记<四>jldap实现Java对LDAP的基本操作
- java 模拟系统连接程序
- Spring事务配置的五种方式
- java开发环境搭建
- 自动装箱拆箱在Java集合类框架引起的性能问题
- java开发环境搭建
- Java连接db2数据库(常用数据库连接五)
- java 单例模式
- Java连接db2数据库(常用数据库连接五)
- Java int to String互转
- 在eclipse中使用断言Assert
- java 的转义字符
- java.lang.ClassNotFoundException: com.*.listener.ConfigInfoReader