资讯专栏INFORMATION COLUMN

JAVA操作数据库Datetime数据

jonh_felix / 2190人阅读

摘要:如何将类型插入数据库中,成为好多人的一个不小的障碍。当然,并不一定要在外部插入时间,因为在数据库中,可以让它自动插入,比如里面,用来插入当前时间,而在时,便可以不用管它了。但有的时候还是避免不了,要手工插入时间,以更新数据库。

在JDK 1.1后,java.util.Date 类型的大多数方法已经不推荐使用了。代替它的是Calendar。

而在java.sql.Date 和 java.util.Date之间,有些微妙的关系。

如何将Date类型插入数据库中,成为好多人的一个不小的障碍。

当然,并不一定要在外部插入时间,因为在数据库中,可以让它自动插入,比如:MSSQL里面,用getdate()来插入当前时间,而在Insert时,便可以不用管它了。但有的时候还是避免不了,要手工插入时间,以更新数据库。

1、java.util.Calendar 格式化时间

Calendar cal = new GregorianCalendar();
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中输出是:

今天是: 年月日 ::

结果: 今天是: 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 几乎不用,因为没有人只会取出时间,而不用日期。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64171.html

相关文章

  • java中获取时间戳的方法

    在java开发过程中经常会遇到统计某一天或是某一个月的数据,因此常常需要获取截取数据的两个时间戳(比如统计今天的数据,则需要获取一个开始时间为今天零点以及一个结束时间为明天零点),然后根据数据相关的时间是否在该时间区间内来判断是否将其计入统计数据中。 话不多说,首先我们先拿上面的例子说起吧。如何获取今天零点以及明天零点的两个时间戳。 public Long getToday(){ ...

    learn_shifeng 评论0 收藏0
  • Java】留下没有基础眼泪的面试题

    摘要:表示连接已经成功建立。在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据。表示收到了对方的报文,并发送出了报文。状态下的连接会等待罕见的状态。在窗口中还没有发出的接收方还有空间。进程的亲缘关系通常是指父子进程关系。 前言 只有光头才能变强 本文力求简单讲清每个知识点,希望大家看完能有所收获 一、如何减少线程上下文切换 使用多线程时,不是多线程能提升程序的执行速度,使用多线程...

    trigkit4 评论0 收藏0
  • Java】留下没有基础眼泪的面试题

    摘要:表示连接已经成功建立。在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据。表示收到了对方的报文,并发送出了报文。状态下的连接会等待罕见的状态。在窗口中还没有发出的接收方还有空间。进程的亲缘关系通常是指父子进程关系。 前言 只有光头才能变强 本文力求简单讲清每个知识点,希望大家看完能有所收获 一、如何减少线程上下文切换 使用多线程时,不是多线程能提升程序的执行速度,使用多线程...

    econi 评论0 收藏0
  • Java】留下没有基础眼泪的面试题

    摘要:表示连接已经成功建立。在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据。表示收到了对方的报文,并发送出了报文。状态下的连接会等待罕见的状态。在窗口中还没有发出的接收方还有空间。进程的亲缘关系通常是指父子进程关系。 前言 只有光头才能变强 本文力求简单讲清每个知识点,希望大家看完能有所收获 一、如何减少线程上下文切换 使用多线程时,不是多线程能提升程序的执行速度,使用多线程...

    I_Am 评论0 收藏0
  • Java】留下没有基础眼泪的面试题

    摘要:表示连接已经成功建立。在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据。表示收到了对方的报文,并发送出了报文。状态下的连接会等待罕见的状态。在窗口中还没有发出的接收方还有空间。进程的亲缘关系通常是指父子进程关系。 前言 只有光头才能变强 本文力求简单讲清每个知识点,希望大家看完能有所收获 一、如何减少线程上下文切换 使用多线程时,不是多线程能提升程序的执行速度,使用多线程...

    light 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<