java计算下一个整5分钟时间点

2023-11-01

需求:需要获取当前时间的下一个整点时间,如13:23,获取的下一个时间为 13:25
代码:

/**
     * 获取下一个分钟值以0或者5结尾的时间点(单位:毫秒)
     * @return
     */
    public static long getNextMillisEndWithMinute0or5(Date baseTime) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(baseTime);
        int minute = calendar.get(Calendar.MINUTE);
        if (minute < 55) {
            System.out.println(minute%10 + "===" + (5 - minute%10) + "===" + (10 - minute%10));
            int add = minute%10 < 5 ? 5 - minute%10 : 10 - minute%10;
            calendar.add(Calendar.MINUTE, add);
            calendar.set(Calendar.SECOND, 0);
            calendar.set(Calendar.MILLISECOND, 0);
            return calendar.getTime().getTime();
        }
        // 当前时间+1小时
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.add(Calendar.HOUR_OF_DAY, 1);
        return calendar.getTime().getTime();
    }

测试代码:

@Test
    public void timeEndWithMinute0or5() throws ParseException {
        final String format = "yyyy-MM-dd HH:mm:ss";
        DateFormat dF = new SimpleDateFormat(format);
        long next = getNextMillisEndWithMinute0or5(new Date());
        System.out.println(DateFormatUtils.format(next, format));

        long test1 = getNextMillisEndWithMinute0or5(dF.parse("2020-07-10 11:00:00"));
        Assert.assertEquals("2020-07-10 11:05:00", DateFormatUtils.format(test1, "yyyy-MM-dd HH:mm:ss"));

        long test2 = getNextMillisEndWithMinute0or5(dF.parse("2020-07-10 11:35:00"));
        Assert.assertEquals("2020-07-10 11:40:00", DateFormatUtils.format(test2, "yyyy-MM-dd HH:mm:ss"));

        // 跨小时
        long test3 = getNextMillisEndWithMinute0or5(dF.parse("2020-07-10 12:59:59"));
        Assert.assertEquals("2020-07-10 13:00:00", DateFormatUtils.format(test3, "yyyy-MM-dd HH:mm:ss"));

        // 跨天
        long test4 = getNextMillisEndWithMinute0or5(dF.parse("2020-07-10 23:59:59"));
        Assert.assertEquals("2020-07-11 00:00:00", DateFormatUtils.format(test4, "yyyy-MM-dd HH:mm:ss"));

        // 跨闰月
        long test5 = getNextMillisEndWithMinute0or5(dF.parse("2020-02-29 23:55:59"));
        Assert.assertEquals("2020-03-01 00:00:00", DateFormatUtils.format(test5, "yyyy-MM-dd HH:mm:ss"));

        // 跨闰年
        long test6 = getNextMillisEndWithMinute0or5(dF.parse("2019-12-31 23:55:59"));
        Assert.assertEquals("2020-01-01 00:00:00", DateFormatUtils.format(test6, "yyyy-MM-dd HH:mm:ss"));
    }

参考文章:java计算下一个整5分钟时间点 - 极客子羽 - 博客园

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java计算下一个整5分钟时间点 的相关文章

  • 在 Java 中跨平台地播种随机生成器,无需时间

    我几乎同时在两个线程上初始化两个随机数生成器 并且我希望这两个生成器的行为完全不同 我会打电话Random nextInt 7 经常一个接一个地在两台发电机上运行 使用System currentTimeMillis 这不是一个好主意 因为
  • 使用 Hibernate 或 Spring 打印 DBMS_OUTPUT.put_line

    我想知道 Hibernate 或 Spring 或任何第 3 方库是否提供将 DBMS OUTPUT put line 消息直接打印到 system out 或日志文件的能力 目的是在控制台中同时显示 PLSQL 日志消息和 java 日志
  • 如何限制用户键入时 JTextPane 中的字符数 (Java)

    我需要不允许在输入 X 后输入任何字符 我需要在输入 X 个字符后发出蜂鸣声 我知道如何在用户按 Enter 键后执行此操作 但我需要在用户按 Enter 键之前执行此操作 我从 Oracle 站点找到的方法是将 DocumentSizeF
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • 为什么Java HashMap的最大容量是1<<30而不是1<<31?

    Why is the maximum capacity of a Java HashMap 1 lt lt 30 and not 1 lt lt 31 even though the max value of an int is 231 1
  • 如何使用 Gradle 2.10 将 ANTLR 词法分析器语法导入到另一个语法中?

    我一直在和 Terence Parr 一起学习 ANTLR 4权威的 ANTLR 4 参考 到目前为止我一直在使用 Gradle 2 10 及其内置 ANTLR 插件进行跟踪 然而 我在获取一些我从第 4 章第 38 41 页改编的代码以使
  • JavaPreparedStatementUTF-8字符问题

    我有一份准备好的声明 PreparedStatement st 在我的代码中 我尝试使用 st setString 方法 st setString 1 userName userName 的值为 ak a setString 方法将 ak
  • Tomcat JDBC 池中没有足够的空闲连接

    给定以下 Tomcat JDBC 连接设置
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog
  • 捕获 XSS(跨站脚本)攻击的最佳正则表达式(Java 中)?

    杰夫实际上在净化 HTML http refactormycode com codes 333 sanitize html 但他的示例是用 C 编写的 而我实际上对 Java 版本更感兴趣 有人有更好的 Java 版本吗 他的示例是否足以直
  • 使用 Mockitos 传递参数化输入

    我正在使用 Mockito 进行单元测试 我想知道是否可以使用 Junit 测试中的方式发送参数化输入参数 e g InjectMocks MockClass mockClass new MockClass Test public void
  • 如何强制初始化 Hibernate JPA 代理以在 JSON 调用中使用它

    我有一个 Spring 3 JPA 2 0 应用程序 在我的 Controller我需要一个初始化的对象 但我有代理 我需要能够以编程方式初始化它 我需要类似的功能org hibernate Hibernate initialize Obj
  • Jar Manifest 文件的使用混乱

    我正在阅读使用 jar 工具打包 java 应用程序 我注意到 META INF 目录下创建了一个清单文件 对于一个简单的应用程序来说 感觉它没有任何作用 我在 stackoverflow 上搜索以了解 Manifest 文件的用法 我碰到
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • Google App Engine数据存储区字符串编码问题

    你好 我正在使用 Google App Engine 进行一个项目 并且需要存储一些字符串 我正在使用 Java 和JDOHelper getPersistenceManagerFactory transactions optional 在
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • 如何在jpa中共享EntityManagerFactory

    我是 jpa 的新手 这是场景 我正在开发一个 Web 应用程序 其中 多个用户可以登录 当 user1 注销时 我正在使用下面的代码 public static void closeEntityManagerFactory if enti
  • JBoss 5 截断 base64 cookie 字符串的尾部 =

    从 JBoss 4 升级到 JBoss 5 后 我注意到最烦人的回归 它截断 base64 cookie 值的尾部等号 我花了很长时间才明白问题不是我的代码而是 JBoss 的 我用 google 搜索了一下 发现这是一个已知的问题issu
  • Java applet 是否会违反同源策略

    我需要请求一些东西并从其他域获取信息 我知道由于同源政策 javascript 无法做到这一点 我的另一个选择是通过我的服务器发出代理请求 我不希望请求来自我的服务器的 IP 也不想为我的服务器创建额外的负载 并且希望客户端这样做 是否可以
  • 生成签名和加密的 JWT

    我正在尝试使用生成签名和加密的 JWT 令牌雨云智威汤逊 http connect2id com products nimbus jose jwt private void generateToken throws JOSEExceptio

随机推荐

  • 前K个高频元素--堆

    LeetCode 前K个高频元素 给定一个非空的整数数组 返回其中出现频率前 k 高的元素 示例 1 输入 nums 1 1 1 2 2 3 k 2 输出 1 2 示例 2 输入 nums 1 k 1 输出 1 提示 你可以假设给定的 k
  • 全球根服务器地理位置,全球13个根服务器地址

    FORMERLY NS INTERNIC NET 3600000 NS A ROOT SERVERS NET A ROOT SERVERS NET 3600000 A 198 41 0 4 A ROOT SERVERS NET 360000
  • Linux下安装DockerEngine-Community

    1 介绍 Docker 是一个开放源代码软件 是一个开放平台 用于开发应用 交付 shipping 应用 运行应用 Docker允许用户将基础设施 Infrastructure 中的应用单独分割出来 形成更小的颗粒 容器 从而提高交付软件的
  • 空指针异常:解决 RequestContextHolder.getRequestAttributes()为空的问题

    现象 实现Feign请求拦截器时 执行如下代码 报空指针异常 ServletRequestAttributes attributes ServletRequestAttributes RequestContextHolder getRequ
  • 宝塔面板搭建自己的网站,并发布公网远程访问

    文章目录 1 环境安装 2 安装cpolar内网穿透 3 内网穿透 4 固定http地址 5 配置二级子域名 6 创建一个测试页面 宝塔面板简单几步搭建本地web站点 并做内网穿透 实现公网用户也可以正常远程访问 无需公网IP 无需设置路由
  • 数据解析神器 parsel库

    parsel库的基本使用 parsel是一个python的第三方库 相当于css选择器 xpath re parsel由scrapy团队开发 是将scrapy中的parsel独立抽取出来的 可以轻松解析html xml内容 获取需要的数据
  • 寒假作业【主席树】

    题目链接 P2717 寒假作业 题目要求的是平均值不小于K的 那么可以将问题变成 对所有的都减去K 然后求 权值和大于等于0 的子串的个数有多少个 于是 我们可以求 以每个点作为子串结尾的点时候的可能的子串的数量 这里就可以用前缀和来维护了
  • muduo net库学习笔记2——muduo网络库相关类图的关系、EventLoop、Channel、 Poller

    EventLoop的简化封装 有在上篇文章中出现过但是连贯一下就还是搬过来 看完类图关系就可以分析完善的代码了 可以直接跳转到正文类图关系 h文件 namespace muduo namespace net Reactor at most
  • 【算法】蛇形填数

    题目描述如下 思路 输入n 构建一个n n的矩阵 初始化所有值为为0 加头文件 include
  • xp系统显示无打印机服务器,XP共享打印机时提示“工作站服务没有启动”的原因和解决方案...

    很多WindowsXP系统用户在日常办公时 经常会碰到需要共享打印机的情况 不过 xp系统共享打印机时偶尔也会提示 工作站服务没有启动 这是怎么回事呢 下面 小编就给大家介绍XP共享打印机时提示 工作站服务没有启动 的原因和解决方案 原因分
  • 初学Java该学哪些知识?这6大知识必学

    目前 Java是开发人员的热宠 很多论坛都有不少热爱Java的开发人员 也有不少想成为Java程序员 但苦于不知道该如何学习Java 也不清楚该学些什么知识才能成为一个Java程序员 小千在这里抛砖引玉 和大家讨论初学Java应该掌握的知识
  • gitee配置ssh后仍需要密码

    gitee创建仓库后默认提供的是https链接需要修改为ssh才能免密登录 1 查看远程仓库链接 git remote v 删除远程仓库 git remote rm origin 重新添加远程仓库 ssh地址 git remote add
  • 关于hive中从hdfs上load数据到表中而HDFS上的数据却消失的若干问题

    原链接 https blog csdn net shuaikang666 article details 80357075 今天偶然间发现hive中一个我之前没有注意到的一个小细节 我怀疑你们之前也可能没有注意到 那就是当我们试图从HDFS
  • Adding New Functions to MySQL(User-Defined Function Interface UDF、Native Function)

    catalog 1 How to Add New Functions to MySQL 2 Features of the User Defined Function Interface 3 User Defined Function 4
  • postgres数据库相关使用说明

    默认的数据库和用户名是postgres 登录 psql U postgres d postgres ctrl c q 退出数据库交互模式 创建新用户 gwp createuser U postgres P d gwp 输入密码 mxq123
  • 路由器和交换机工作原理

    路由器工作原理 路由器 三层设备 同时基于二层设备工作 当数据包进到路由器时 首先查看的是二层报头 查看的是目标MAC 目标MAC分为三种 广播 组播 单播 广播地址 解封装到三层报头 组播地址 每一个组播地址均存在自己的MAC地址 基于目
  • 华为OD题目: 任务总执行时长

    package com darling boot order od od10 import com sun org apache bcel internal generic IF ACMPEQ import java util 任务总执行时
  • 几种I/O编程实践

    1 传统的BIO编程 网络编程的基本模型是Client Server模型 也就是两个进程间相互通信 其中 服务端提供位置信息 绑定的IP地址和监听端口 客户端提供连接操作向服务端监听的地址发起连接请求 通过三次握手建立连接 如果连接建立成功
  • Burpsuite在Firefox中无法抓取DVWA本地数据包解决方案+导入证书

    前言 这几天重装了系统 软件也大部分重新安装 在使用bp时 遇到了不能抓取dvwa数据包的情况 解决方案 猜想 可能是浏览器自动将127 0 0 1与localhost默认选择不使用代理服务 无法修改 反正我没找到 方案 将url栏中的12
  • java计算下一个整5分钟时间点

    需求 需要获取当前时间的下一个整点时间 如13 23 获取的下一个时间为 13 25 代码 获取下一个分钟值以0或者5结尾的时间点 单位 毫秒 return public static long getNextMillisEndWithMi