java.util.Date包
- 子类:java.sql.Date——表示年月日
- 子类:java.sql.Time——表示时分秒
- 子类:java.sql.Timestamp——表示年月日时分秒
注:时间是从1970年1月1日开始,单位是毫秒,用long类型存储.
package com.first.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Random;
/**
* 测试时间处理(java.sql.Date,Time,Timestamp)
*
*/
public class Demo07 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
try {
//加载驱动类
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc","root","root");
ps = conn.prepareStatement("insert into t_user (username,pwd,regTime,lastLoginTime) values (?,?,?,?)");
ps.setObject(1, "代红");
ps.setObject(2, "123");
//java.sql.Date()需要传入一个long值
java.sql.Date date = new java.sql.Date(System.currentTimeMillis());
Timestamp stamp = new Timestamp(System.currentTimeMillis());
//如果需要插入指定日期,可以使用Calendar、DateFormat
ps.setDate(3, date);
ps.setTimestamp(4, stamp);
ps.execute();
System.out.println("插入一个用户");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(ps!=null){
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
日期比较处理
- 插入随机日期
- 取出指定日期范围的记录
代码是修改上面的:
package com.first.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Random;
public class Demo07 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
try {
//加载驱动类
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc","root","root");
for(int i=0;i<1000;i++){
ps = conn.prepareStatement("insert into t_user (username,pwd,regTime,lastLoginTime) values (?,?,?,?)");
ps.setObject(1, "代红"+i);
ps.setObject(2, "123");
int rand = 100000000+new Random().nextInt(1000000000);
//java.sql.Date()需要传入一个long值
java.sql.Date date = new java.sql.Date(System.currentTimeMillis()-rand);
Timestamp stamp = new Timestamp(System.currentTimeMillis()-rand);
//如果需要插入指定日期,可以使用Calendar、DateFormat
ps.setDate(3, date);
ps.setTimestamp(4, stamp);
ps.execute();
}
System.out.println("插入一个用户");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(ps!=null){
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
部分结果如下:
注:
- random.nextInt() 为 java.util.Random类中的方法(Random类中的nextXxxx系列方法生成0-n的随机数)
- Math.random() 为 java.lang.Math 类中的静态方法(Math.random() 方法生成[0, 1)范围内的double类型随机数)