最近一直忙着实习,整理了好多东西,可是一直都没有时间去写。今天分享的是关于java的时间函数。主要内容就是java API中的时间类,和SQL中的时间函数。

java API中的时间类主要有:

    java.util.Date;

    java.sql.Date;

    java.util.Calendar'

    java.text.SimpleDateFormat

   java.util.Date 就是在除了SQL语句的情况下面使用,java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分它都有getTime方法返回毫秒数,自然就可以直接构建
      java.util.Date d = new java.util.Date(sqlDate.getTime());
      java.util.Date 是 java.sql.Date 的父类(注意拼写)
前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他,后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date 转换是
java.sql.Date date=new java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());
反过来是一样的

      继承关系:java.lang.Object -> java.util.Date -> java.sql.Date
     具体的转换关系就是java.util.Date d=new java.util.Date (new Java.sql.Date());

    这些东西是比较有用的。

     java.util.Calendar, java.text.SimpleDateFormat用的最多的是时间转换。于是我就利用一个下午的时间好好收集了资料然后封装好一个,如果有什么不好的地方大家可以给我回复。

   //注意HH与hh含认不同,HH表示以24小时制取,hh表示以12小时制取

 2:SQL中的时间函数。

 

MySql的时间类型有         Java中与之对应的时间类型
date                                                java.sql.Date

Datetime                                       java.sql.Timestamp

Timestamp                                   java.sql.Timestamp

Time                                              java.sql.Time

Year                                               java.sql.Date

 

date:        只记录日期信息,表示范围为1000-01-01  9999-12-31。"YYYY-MM-DD"

DateTime    与Date最主要的区别在于:DateTime 可以记录日期和时间信息。而Date只记录日期信息。表示范围为: 1000-01-01 00:00:00 至 9999-12-31 23:59:59  "YYYY-MM-DD HH:MM:SS";

TimeStamp   与DateTime类型非常相似 范围为1970-01-01 –2037年,精度为1秒/如果在Sql中未对Timestamp类型的列赋值,该列将被构造成当前时间。提交NULL值也会使该列以当前时间录入。如果时间提交错误,该列将被填入0.Timestamp比DateTime 类型所需的存储空间更小,只需要4个字节,而DateTime需要8个字节。但是有一点需要特别注意。Timestamp只能表示时间范围为1970 -2037.   “YYYY-MM-DD HH:MM:SS”

Time          只记录时间信息,不包含日期信息。范围为-838:59:59 到 838:59:59,  "HH:MM:SS”,

 

由于不同的数据库的时间函数不相同:我的建议是尽量参考W3C school中的文档。具体我不多做介绍了!大家应该都很了解