
Java.util.Date与java.sql.Date转换与字符串日期解析指南
版权申诉
67KB |
更新于2024-08-18
| 70 浏览量 | 举报
收藏
在Java编程中,`java.util.Date`和`java.sql.Date`是两种处理日期和时间的重要类,它们在数据库操作中经常被用于日期数据的存储和交互。本文档主要讨论了这两个类之间的互转以及字符串转换为日期时间格式的过程。
首先,我们来看如何将`java.util.Date`转换为`java.sql.Date`。`java.util.Date`是Java内置的日期和时间类,代表的是从1970年1月1日(UTC)以来的毫秒数。而`java.sql.Date`则是`java.sql`包下的一个日期类型,它只包含日期部分,不包括时间。要进行转换,可以创建一个`java.util.Date`对象,然后通过其`getTime()`方法获取毫秒值,并将其赋值给`java.sql.Date`的构造函数,如下所示:
```java
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
```
在将`java.util.Date`插入数据库时,如果数据库字段是Date类型,通常使用`PreparedStatement`的`setDate()`方法。例如,如果数据库提供`TO_DATE`函数,你可以利用`SimpleDateFormat`将`java.util.Date`格式化为数据库期望的格式(如"yy-MM-dd HH:MM:ss"),然后再调用`TO_DATE`函数:
```java
String x = "2007-07-12";
String formatStr = "yy-MM-dd HH24:MI:SS";
String formattedX = new SimpleDateFormat(formatStr).format(x);
sql = "update tablename set timer = to_date('" + formattedX + "', 'YY-MM-DDHH24:MI:SS') where ...";
```
接下来,如果需要将字符串按照"yy-mm-dd"格式转换为`java.sql.Date`,这里有两种方法:
方法1:使用`SimpleDateFormat`进行解析。创建一个`SimpleDateFormat`对象,指定输入字符串的格式,然后尝试解析并转换为`java.util.Date`,最后通过`java.util.Date`的`getTime()`得到`java.sql.Date`:
```java
SimpleDateFormat bartDateFormat = new SimpleDateFormat("yy-MM-dd");
String dateStringToParse = "2007-07-12";
try {
java.util.Date date = bartDateFormat.parse(dateStringToParse);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
System.out.println(sqlDate.getTime());
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
```
方法2:利用`StringTokenizer`分割字符串,根据"-"分隔符提取年、月、日,然后直接创建`java.sql.Date`对象:
```java
String strDate = "2002-08-09";
StringTokenizer st = new StringTokenizer(strDate, "-");
int year = Integer.parseInt(st.nextToken());
int month = Integer.parseInt(st.nextToken());
int day = Integer.parseInt(st.nextToken());
java.sql.Date date = new java.sql.Date(year * 365 + month * 30 + day);
```
总结一下,`java.util.Date`和`java.sql.Date`之间的转换需要注意格式的匹配,以及数据库对日期时间格式的需求。在实际开发中,了解并正确处理这些转换有助于避免数据不一致和数据操作的错误。同时,字符串格式化和解析是日期时间编程中的基础技能,熟练掌握可以帮助提高代码的准确性和可维护性。
相关推荐










无敌开心
- 粉丝: 1955
最新资源
- XP登录界面轻松替换!绿色工具V2.0发布
- 基于Struts和Hibernate的网上书店系统开发实践
- ASP图表功能:柱状、折线、饼图等实例代码解析
- foobar2000安装BBE音效插件的详细步骤
- VB开发的打字速度测试游戏
- 高校宿舍管理系统的开发与应用
- C#开发的食堂就餐提醒系统源码分析
- Bugzilla 3.0.5版本发布:开源缺陷跟踪工具
- 全面解析软件开发设计文档:20大必备文档指南
- C++实现粒子群优化算法解决连续型问题
- C#开发天气日报WebService接口
- Linux环境下UART对RS485 CMD进行简单测试
- 大学Flash课件1-10章完整讲解
- ASP.NET优雅下拉菜单的实现与转换
- VB控件开发教程与事件处理大全
- 彻底解决Office 2003顽固卸载问题
- 适用于Delphi 2009的ComPort库更新指南
- Matlab实现基于灰度膨胀的指纹图像分割程序
- 全面的JavaScript技术参考:DHTML与JScript指南
- JAVA成绩分析程序:图形化展示与文件存档功能
- VB温度计程序:实现温度控制及暂停功能
- AS3鼠标跟随效果实现与源码解析
- 树型控件数据库交互与右键功能实现教程
- 基于Struts与Eclipse实现的BBS论坛源码