java比较时间sql_如何正确比较日期 java.sql.Date
import java.sql.Date;
.....
....
...
..
.
例如今天是2010-12-2
Date d1 = new Date(System.currentTimeMili());
Date d2 = new Date(System.currentTimeMili()+1);//比d1晚1毫秒日期上,我们认为d1和d2是相等的
但是
System.out.println(d1.before(d2));
输出结果是true;
其实我们希望看到的是这两个对象在日期上是相等的。
因为我们只关心“日期”,而“2010-12-2”不等于“2010-12-2”
这个结果显然是我们所不能接受的。
究其原因,是因为Date内封装了一个精确到毫秒的表示时间的
private transient long fastTime;
而before和after的函数的实现如下,都是判断fastTime的值,所以达不到我们只比较日期的要求。
public
boolean before(Date when) {
return getMillisOf(this) < getMillisOf(when);
}
public
boolean after(Date when) {
return getMillisOf(this) > getMillisOf(when);
}
那么,如何比较日期呢?
思路当然是把日期格式成标准的“年月日”,然后对格式化后的对象进行比较,得到比较的结果
本文给出一种“格式成标准化”的方式
Date d1_temp = java.sql.Date.valueOf(d1.toString());
Date d2_temp = java.sql.Date.valueOf(d2.toString());
System.out.prinltn(d1_temp.equals(d2_temp));//输出结果是true;
System.out.prinltn(d1_temp.before(d2_temp));//输出结果是false;
System.out.prinltn(d1_temp.after(d2_temp));//输出结果是false;
需要逻辑的话,可以写成
if(d1_temp.before(d2_temp)){
.........
}
本文结束。
PS:用文本方式转格式,日期会向前回滚一天,但是无所谓,两个都转格式之后,我们只需要知道它们之间的先后关系,无需用转换后的日期做运算。所以,可以放心使用
java比较时间sql_如何正确比较日期 java.sql.Date相关推荐
- Java验证时间格式是否正确
Java验证时间格式是否正确 /*** @author * @Description 时间格式校验* @Version 1.0* @since */ public class IsLegalDate ...
- java核心面试_不正确的核心Java面试答案
java核心面试 总览 在Internet上,Java面试问题和答案从一个网站复制到另一个网站. 这可能意味着错误或过时的答案可能永远不会得到纠正. 这是一些不太正确或已经过时的问题和答案. 即是Ja ...
- java 简单事件的使用,如何正确的使用Java事件通知(1)
如何正确的使用Java事件通知(1) 通过实现观察者模式来提供 Java 事件通知(Java event notification)似乎不是件什么难事儿,但这过程中也很容易就掉进一些陷阱.本文介绍了我 ...
- java sql 日期_java.sql.Date
java.sql.Date 1 java.sql.Date介绍 java.sql.Date类仅表示java中的日期.它继承了java.util.Date类. java.sql.Date实例在JDBC中 ...
- java格式化时间博客园_Java 日期格式化工具类
importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava. ...
- Java把时间毫秒数转换成日期和时间
例如给定毫秒值: 1570650412089 转换方法: public static void main(String[] args) {long milliSecond = 157065041208 ...
- 美国的时间格式 -- 复杂格式的日期转换 使用Date.parse(“复杂的格式”)方法。
使用这个方法 long time = Date.parse("Sun Feb 26 10:31:58 +0800 2012");SimpleDateFormat sdf=new S ...
- java 获取当前月份减1_java String 日期 转成 Date, 月份减1
ainiyanyan13142007-03-30 22:39 1 编写applet 程序的页面输出 红色的 "hello would !" 2 请编写application 计算并 ...
- java两个字符串 相隔天数_关于Java: Joda-Time时间中两个日期之间的天数
我如何找到两个joda time DateTime实例之间的天数差异?如果开始时间是星期一,结束时间是星期二,那么不管开始和结束日期的小时/分钟/秒是多少,返回值都应该是1. 如果从晚上开始到早上结束 ...
最新文章
- java爬树方法_Java-grandMother.java
- 【Groovy】Groovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )
- 玩转树莓派——安装系统
- JavaScript prototype constructor __proto__
- Java Longest Palindromic Substring(最长回文字符串)
- GYM101933I - Intergalactic Bidding
- 机器学习-吴恩达-笔记-3-正则化
- 2022“点点点”测试员如何上岸测试开发岗?附完整学习路线!
- MVC Razor基础
- C++生成随机数:几何分布(geometric distribution)
- 用envi裁剪下来的图像是黑色的_ENVI进行图像裁剪.doc
- jquery的事件命名空间详解
- 论信息系统人力资源管理
- 嵌入式系统开发笔记91:认识ARM微控制器架构
- Arduino之个人健康助理——简易智能药盒系列2
- Mingw-w64 -7.3.0版本百度网盘下载地址
- 详解C++中的构造函数
- 孙鑫 第十七课进程间通信之三 命名管道
- 计算机取证木马取证实验报告,计算机取证技术实验报告.doc
- 焊接机器人控制系统原理分析
热门文章
- 一般一个前端项目完成需要多久_一种按周迭代的敏捷式项目管理方法
- LeetCode-best time to buy and sell stock 2 数组
- Postman安装与使用(网络请求神器)--post、get请求
- 载波聚合或双连接的方式进行_处理载波聚合及双连接的装置及方法与流程
- 计算机算法知识总结,移动笔试知识点之--计算机类-数据结构与算法知识点总结.pdf...
- java显示星期几_Java 使用日历显示星期几
- 移动app显示远程服务器错误,KIS移动应用常见问题汇总
- 计算机信息技术为教育带来的变化,信息技术对课堂教学带来的变化
- mysql怎么给表设置查询语句_MySQL查询语句简单操作示例
- HTML5 audio 如何实现播放多个MP3音频