查看原文
其他

今日代码 PK | 日期时间处理

编程导航-松柏 程序员鱼皮 2024-03-23

在我们平时的开发工作中,肯定离不开对日期时间的处理。

比如我现在需要获取三天前的 0 点,大家都是怎么做的呢?

是这样吗:

import java.util.Date;

public class Main {
    public static void main(String[] args) {
                // 获取当前时间
        Date currentDate = new Date();

        // 计算三天前的时间
        final long DAY = 24 * 60 * 60 * 1000;
        long threeDaysAgoMillis = currentDate.getTime() - (3 * DAY);
        Date threeDaysAgoDate = new Date(threeDaysAgoMillis);

        // 设置时间为0点
        threeDaysAgoDate.setHours(0);
        threeDaysAgoDate.setMinutes(0);
        threeDaysAgoDate.setSeconds(0);

        // 输出结果
        System.out.println("三天前的 0 点时间:" + threeDaysAgoDate);
    }
}

其实 LocalDate 里有很方便且现成的实现:

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        // 获取当前日期
        LocalDate today = LocalDate.now();
        // 减去三天
        LocalDate threeDaysAgo = today.minusDays(3);

        // 输出三天前的0点时间
        System.out.println("三天前的 0 点时间:" + threeDaysAgo.atStartOfDay());
    }
}

大家更喜欢哪种呢?欢迎投票并在评论区留下自己的看法。

完整代码片段来源于代码小抄,欢迎点击进入小程序阅读!

在线访问:https://www.codecopy.cn/post/k2j9rv

更多优质代码欢迎进入小程序查看!

往期推荐

今日代码大赏 | MyBatis-Plus 优雅查询

今日代码大赏 | 集合高阶操作

今日代码大赏 | 饿汉式单例模式

今日代码大赏 | 快速排序

今日代码大赏 | 阶乘

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存