最近一直忙着实习,整理了好多东西,可是一直都没有时间去写。今天分享的是关于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用的最多的是时间转换。于是我就利用一个下午的时间好好收集了资料然后封装好一个,如果有什么不好的地方大家可以给我回复。
2:SQL中的时间函数。
MySql的时间类型有 Java中与之对应的时间类型
date java.sql.DateDatetime 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中的文档。具体我不多做介绍了!大家应该都很了解