小墨の博客

梦想需要付诸行动,否则只能是梦

Java LocalDateTime、Date获取指定日期的当日0点时间戳

工作中写的方法,有时间回来整理完善一下

参考这篇文章(更完善):https://blog.csdn.net/Thepatterraining/article/details/128140264


private static final long MILLIS_PER_DAY = 86400000L;
private static final long TIME_ZONE_OFFSET = TimeZone.getDefault().getRawOffset();
private static final ZoneOffset ZONE_OFFSET = ZoneOffset.ofHours(8);

/**
 * 获取当日0点时间戳
 *
 * @param date
 * @return
 */
private static Long getDayTimestamp(LocalDateTime date) {
    if (date == null) {
        return null;
    }
    // 当前时刻时间戳
    // 秒级
    // long currentTimestamp = date.toEpochSecond(ZONE_OFFSET);
    // 毫秒级
    long currentTimestamp = date.toInstant(ZONE_OFFSET).toEpochMilli();
    // 距离当日 00:00:00 时刻毫秒数
    long dayOffsetTimestamp = currentTimestamp % MILLIS_PER_DAY;
    // 当日 0 点时间戳
    return currentTimestamp - dayOffsetTimestamp;
}

/**
 * 获取当日0点时间戳
 *
 * @param date
 * @return
 */
private static Long getDayTimestamp(Date date) {
    if (date == null) {
        return null;
    }
    // 当前时刻时间戳
    long currentTimestamp = date.getTime() + TIME_ZONE_OFFSET;
    // 距离当日 00:00:00 时刻毫秒数
    long dayOffsetTimestamp = currentTimestamp % MILLIS_PER_DAY;
    // 当日 0 点时间戳
    return currentTimestamp - dayOffsetTimestamp;
}


张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:547
    • 页面总数:20
    • 分类总数:96
    • 标签总数:213
    • 评论总数:63
    • 浏览总数:287025

    | | |
    | |  Z-Blog PHP