java Date 大坑

之前上学时学过java,第一次参与一个java项目,没有LINQ的日子怎么过,要获取一个today和yesterday都如此艰难,这语言还是太落后了,或许只是java8落后吧,听说有新版本了

复制代码
public static Date getNextDay(Date day) {
        Calendar c = Calendar.getInstance();
        c.setTime(day);
        c.add(Calendar.DAY_OF_MONTH, 1);
        return c.getTime();
    }

    public static Date getPreviousDay(Date day) {
        Calendar c = Calendar.getInstance();
        c.setTime(day);
        c.add(Calendar.DAY_OF_MONTH, -1);
        return c.getTime();
    }
复制代码

不过还好javascript支持linq,后端不行,前端处理吧

我已经和java的Date对抗了12小时,我可能已经理解了这个Date了吧,又遇到一个奇葩问题

SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date today = sd.parse(sd.format(new Date()));
Date beginDate = new Date(2021,11,15);
Date endDate = new Date(2021,12,16);
int x = beginDate.compareTo(today);
int y = endDate.compareTo(today);
System.out.println("x=" + x + ",y=" + y);

上面这段代码竟然返回都是 1,算了,原因我已经发贴问出来了,挺无语的

这样才可以

SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date today = sd.parse(sd.format(new Date()));
Date beginDate = sd.parse("2021-11-16");
Date endDate = sd.parse("2021-12-16");
int x = beginDate.compareTo(today);
int y = endDate.compareTo(today);
System.out.println("x=" + x + ",y=" + y);

备忘一下,compareTo方法返回值的是前面的日期减去后面的日期。

啥年代了,还用c语言的语法比较,我都记不住这语法

posted on   空明流光  阅读(130)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2019-11-16 linux centos 7 安装vnc远程服务
2016-11-16 VS2010 使用 EntityFramework For SQL Server Compact 4.0

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示