java date最小值,获取java.sql.date的最大和最小日期

I see everywhere that for get the minimum and the maximum of a date i have to use :

Date dateModificationMin = new Date( Long.MIN_VALUE );

Date dateModificationMax = new Date( Long.MAX_VALUE );

But i do it on my java.sql.date it's return :

055-12-02 for the min date

994-08-17 for the max date

How can i do for get the maximum and minimum of a java.sql.date?

解决方案

If you do the code to the java.util.Date, you will gain

dateModificationMin = Sun Dec 02 17:47:04 CET 292269055

dateModificationMax = Sun Aug 17 08:12:55 CET 292278994

i guess, the date with negative long timestamp works wrong, so the minimum date is

new Date(0)== Thu Jan 01 01:00:00 CET 1970

Since java.sql.date extends the java.util.Date, the problem there is probably same

with

long timestamp = -10;

for (int i = 0; i < 20; i++) {

System.out.println("timestamp = " + timestamp + " date = " + (new Date(timestamp)));

timestamp*=10;

}

you get :

timestamp = -10 date = Thu Jan 01 00:59:59 CET 1970

timestamp = -100 date = Thu Jan 01 00:59:59 CET 1970

timestamp = -1000 date = Thu Jan 01 00:59:59 CET 1970

timestamp = -10000 date = Thu Jan 01 00:59:50 CET 1970

timestamp = -100000 date = Thu Jan 01 00:58:20 CET 1970

timestamp = -1000000 date = Thu Jan 01 00:43:20 CET 1970

timestamp = -10000000 date = Wed Dec 31 22:13:20 CET 1969

timestamp = -100000000 date = Tue Dec 30 21:13:20 CET 1969

timestamp = -1000000000 date = Sat Dec 20 11:13:20 CET 1969

timestamp = -10000000000 date = Sun Sep 07 07:13:20 CET 1969

timestamp = -100000000000 date = Mon Oct 31 15:13:20 CET 1966

timestamp = -1000000000000 date = Sun Apr 24 23:13:20 CET 1938

timestamp = -10000000000000 date = Mon Feb 10 07:13:20 CET 1653

timestamp = -100000000000000 date = Thu Feb 26 15:13:20 CET 1200

timestamp = -1000000000000000 date = Tue Nov 16 23:13:20 CET 29720

timestamp = -10000000000000000 date = Sun Feb 01 07:13:20 CET 314912

timestamp = -100000000000000000 date = Mon Mar 08 15:13:20 CET 3166840

timestamp = -1000000000000000000 date = Sun Feb 24 23:13:20 CET 31686119

see how dates go crasy after -1 * 10^15

also with java.sql.Date :

timestamp = -10000000000000 date = 1653-02-10

timestamp = -100000000000000 date = 1200-02-26

timestamp = -1000000000000000 date = 720-11-16

timestamp = -10000000000000000 date = 912-02-01

timestamp = -100000000000000000 date = 840-03-08

timestamp = -1000000000000000000 date = 119-02-24

timestamp = 8446744073709551616 date = 634-03-09

timestamp = -7766279631452241920 date = 582-01-06

so wrong here !! :D

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值