首先展示一下这几个常用的时间类之间的关系
一 java.util.Date转化成String
java.util.Date udate=Calendar.getInstance().getTime();
Format f = new SimpleDateFormat("yyyy-MM-dd hh24:mm:ss");
System.out.println(f.form
二 java.util.Date转化java.sql.Date
java.util.Date udate=Calendar.getInstance().getTime();
java.sql.Date sdate = new java.sql.Date(udate.getTime());
preparedStatement.setDate(1, sdate );
但是这种方式,会造成日期后面的时分秒丢失。插入数据库里显示的是例如 2011-02-16 00:00:00
可以换成:
java.util.Date udate=Calendar.getInstance().getTime();
java.sql.Date sdate=new java.sql.Date(udate.getTime());
java.sql.Timestamp timestamp=new java.sql.Timestamp(sdate.getTime());
preparedStatement.setTimestamp(1, timestamp);
读取
java.util.Date udate=new java.util.Date(resultSet.getTimestamp(1).getTime());
三 几种时间类的控制台输出效果
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class getDate {
public static void main(String[] args) {
java.util.Date ud=Calendar.getInstance().getTime();
System.out.println(ud);
java.util.Date utilDate=new java.util.Date();
System.out.println(utilDate);
java.sql.Timestamp tsp=new java.sql.Timestamp(utilDate.getTime());
System.out.println(tsp);
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
System.out.println(sqlDate);
java.sql.Time sTime=new java.sql.Time(utilDate.getTime());
System.out.println(sTime);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss S");
System.out.println(sdf.format(utilDate));
}
}
输出如下:
Wed Feb 16 14:34:06 CST 2011
Wed Feb 16 14:34:06 CST 2011
2011-02-16 14:34:06.859
2011-02-16
14:34:06
2011-02-16 14:34:06 859
四 向数据库插入时间数据的例子
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
public class Main {
public static void main(String[] args) throws Exception {
Connection conn = getConnection();
Statement st = conn.createStatement();
st.executeUpdate("create table survey (id int,myDate TIMESTAMP );");
String INSERT_RECORD = "insert into survey(id, myDate) values(?, ?)";
PreparedStatement pstmt = conn.prepareStatement(INSERT_RECORD);
pstmt.setString(1, "1");
java.sql.Timestamp sqlDate = new java.sql.Timestamp(new java.util.Date().getTime());
pstmt.setTimestamp(2, sqlDate);
pstmt.executeUpdate();
ResultSet rs = st.executeQuery("SELECT * FROM survey");
outputResultSet(rs);
rs.close();
st.close();
conn.close();
}
private static void outputResultSet(ResultSet rs) throws Exception {
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
for (int i = 1; i < numberOfColumns + 1; i++) {
String columnName = rsMetaData.getColumnName(i);
System.out.print(columnName + " ");
}
System.out.println();
System.out.println("----------------------");
while (rs.next()) {
for (int i = 1; i < numberOfColumns + 1; i++) {
System.out.print(rs.getString(i) + " ");
}
System.out.println();
}
}
private static Connection getConnection() throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@192.168.130.131:1521:ICSS";
String user="lixiang";
String password="19870924";
return DriverManager.getConnection(url,user,password);
}
}
贴一个专门讲java<—>数据库时间类型的的网址
http://www.java2s.com/Tutorial/Java/0340__Database/WorkingwithDateTimeandTimestampinJDBC.htm
- 大小: 41.9 KB
分享到:
相关推荐
Java编程语言提供了两个重要的日期处理类,分别是`java.util.Date`和`java.sql.Date`,它们在处理日期和时间上有着不同的特性和用途。 `java.util.Date`是更通用的日期时间类,它包含了日期和时间的信息,可以精确...
Java提供了多种时间类来满足不同的需求,包括`java.util.Date`, `java.sql.Date`, `java.sql.Time`, `java.sql.Timestamp`, `java.text.SimpleDateFormat`, 和 `java.util.Calendar`。下面我们将深入探讨这些类的...
Java 8引入的`java.time`包相比于旧的`java.util.Date`和`java.sql.Timestamp`,在性能和易用性上都有显著提升。但在数据库层面,Oracle也有优化的索引策略,如B树索引或函数索引,来提高对Timestamp with Time Zone...
java.sql.Date sqlDate = new java.sql.Date(sqlTimestamp.getTime()); ``` 需要注意的是,`SimpleDateFormat`的`setLenient(false)`方法用于确保日期时间格式的严格匹配,避免因不规范的输入导致意外的结果。 在...
Oracle引入了全新的日期时间API,包括`LocalDate`、`LocalTime`和`LocalDateTime`,这些类提供了更加直观且强大的日期时间处理能力,替代了传统且复杂的`java.sql.Date`、`java.sql.Timestamp`和`java.util.Date`。...
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); PreparedStatement ps = connection.prepareStatement("INSERT INTO table_name (date_column) VALUES (?)"); ps.setDate(1, sqlDate); ps....
- **日期时间类型**:`java.util.Date` 和 `java.sql.Date` 对应于 `DATE`,`java.util.Date` 和 `java.sql.Time` 映射为 `TIME`,而 `java.util.Date`、`java.sql.Timestamp` 和 `java.util.Calendar` 则映射到 `...
14. `timestamp`:映射Java的`java.util.Date`或`java.sql.TimeStamp`,对应的SQL类型是`TIMESTAMP`。用于存储日期和时间。 15. `calendar`:映射Java的`java.util.Calendar`,对应的SQL类型是`TIMESTAMP`。允许更...
在 ORM 框架如 Hibernate 中,DB2 的 DATE 字段映射为 Java 的 `java.util.Date` 时,可能导致错误,需要改为 TIMESTAMP。 6. **分页处理**: - ORACLE 使用 `rownum` 进行分页,而 DB2 使用 `rownumber() over()`...
- 日期和时间:`java.util.Date`或`java.sql.Date`,以及`timestamp`等。 - 数值类型:`BigDecimal`和`BigInteger`。 - 大对象:`Clob`和`Blob`。 至于主键管理策略,Hibernate提供了多种方式,如: - `increment`...
- **java.util**:提供了大量实用工具类,如集合框架(List、Map等)、日期操作等。 - **java.io**:提供用于输入/输出的类,如FileInputStream、OutputStreamWriter等。 - **java.sql**:为SQL数据库访问提供API...