很久以前发在公司内网的文章,发出来共享,隐去具体项目、人员的名字。
某天上午xxx向我反应一个yyy项目现场的问题,zzz操作失败,我告诉他数据库里有一个时间间隔参数,把它改成0就行了。
下午胡xxx又找我,说确认那个参数的确就是0,这下我也不知道原因了,只能登录服务器检查日志,没有看到有用的线索;检查源程序,程序逻辑也是对的;弄得我也很郁闷,怀疑有非检查型的异常导致程序中途退出,于是准备在程序中多打些日志看看问题在哪,这时突然发现程序中有java.sql.Date的踪影,我意识到问题出在什么地方了。
java.sql.Date对应标准sql里的Date类型,它会把时、分、秒、毫秒位置归零,除非确认程序逻辑的确要这样做,否则时间变量采用这种类型时会导致逻辑错误。
这是一个很基础的常识,但这段代码在我们的程序里存在了四年,很简单的代码如果不加注意也很容易写错,而且恰恰因为简单我们往往意识不到这种错误的存在。
以前还碰到过一个类似的问题,Calendar,我们设置或者取得“小时”,可能很自然的就使用了它定义的HOUR 这个常量,通常这是错的,因为这个常量指的是12小时制的,应该使用HOUR_OF_DAY,这是24小时制的。
使用API的时候, 如果是第一次,至少要看一遍它的javadoc,哪怕它看起来似乎一目了然。
分享到:
相关推荐
在Java编程语言中,处理日期和时间时经常使用到`java.util.Date`和`java.sql.Date`这两个类。它们虽然名字相似,但在实际应用中有很大的区别。 - **`java.util.Date`**:这个类提供了创建和操作日期/时间的功能,它...
这种设计使得 `java.sql.Date` 自然地拥有 `java.util.Date` 的所有特性,同时为了更好地适应数据库操作的需要,`java.sql.Date` 还进行了特定的设计和优化。 #### 互相转换的方法 1. **使用 getTime() 函数** `...
java.sql.Date、java.sql.Time和java.sql.Timestamp都是java.util.Date的子类(包装类)。但是,java.sql.Date类型的值插入到数据库中Date字段中会发生数据截取。这是因为java.sql.Date只包含年月日信息,时分秒毫秒...
Java编程语言提供了多种日期时间类来处理不同的场景需求,其中`java.util.Date`和`java.sql.Date`是两个常见的日期类型,它们之间存在一定的差异和转换关系。 `java.util.Date`是Java标准库中的基础日期类,它表示...
java_sql_Date与java_util_Date转换
在Java编程中,日期处理是常见的任务之一,`java.util.Date` 和 `java.sql.Date` 都是用来表示日期的类,但它们之间存在显著的区别和用法差异。 首先,`java.util.Date` 是 Java 核心库 `java.util` 包中的类,它...
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
此java文件包括常用的日期类型之间的转换,包括java.util.Date、java.sql.Date、String之间的任意类型、格式转换......
项目中碰到的,记录一下解决方案
java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……
Java 中的 `java.util.Date` 类和 `java.sql.Date` 类都是用于表示日期和时间的,但是它们有所不同。`java.util.Date` 类有无参的构造函数,而 `java.sql.Date` 类没有无参的构造函数。 可以使用以下方式将 `String...
这里的重点在于确保转换的准确性和兼容性,因为`java.sql.Date`与`java.util.Date`是不同的,前者主要用于与数据库交互。 #### 二、解决方案 为了实现这个需求,我们可以编写一个方法`stringToSqlDate`,该方法...
项目中碰到的,记录一下解决方案
在Java编程语言中,`java.util.Date` 和 `java.sql.Date` 都是处理日期的类,但它们各自有特定的用途和特点。理解这两者的区别对于进行数据库操作和日常日期处理至关重要。 `java.util.Date` 是Java标准库中一个...
Java编程语言中有两种重要的日期类型,分别是`java.util.Date`和`java.sql.Date`,它们在处理日期和时间上有着不同的特性和用途。本文将详细探讨这两种类型的区别、转换方法以及在实际应用中的使用场景。 首先,`...
本文将详细介绍如何将`java.util.Date`对象转换为`java.sql.Date`对象,这对于那些需要将日期值存储到数据库中的应用程序来说至关重要。 ### 标题:util包里的Date类转换为sql包里的Date #### 了解util包里的Date...
项目中碰到的,记录一下解决方案