当前位置: 首页 > 知识库问答 >
问题:

Java发现当前时间在本地日期地图时间之间

西门庆
2023-03-14

目前我有一张包含以下条目的地图,

  for(Map.Entry<LocalDateTime, Integer> entry: resultMap.entrySet()) {
      System.out.println(entry.getKey() + " : " + entry.getValue());
  }

  2022-03-29T00:30 : 1
  2022-03-29T01:00 : 2
  2022-03-29T01:30 : 3
  2022-03-29T02:00 : 4
  2022-03-29T02:30 : 5
  2022-03-29T03:00 : 6
  2022-03-29T03:30 : 7
  .
  .
  .
  2022-03-29T23:30 : 47
  2022-03-30T00:00 : 48

如何确定当前LocalDateTime是否介于两个时间之间?例如,如果当前时间为2022-03-29T01:27,则需要获取值3

共有1个答案

公孙志
2023-03-14

第一个想法:如果你知道你的地图中的所有时间值都是00分钟或30分钟,你可以试着在你的地图中找到一个当前的时间值。

Ex:(伪代码,因为我不熟悉LocalDateTime)

LocalDateTime currentTimeRoundedToTheNext00or30min = currentTime;
if (0 < currentTime.minutes < 30) {
    currentTimeRoundedToTheNext00or30min.setMinutes(30);
} else {
    currentTimeRoundedToTheNext00or30min.setMinutes(0);
    currentTimeRoundedToTheNext00or30min.addHour(1);
}
int result = yourMap.get(currentTimeRoundedToTheNext00or30min);

第二个想法:如果地图中用作键的时间值被排序,那么你的需求也可以被视为“找到地图中大于当前时间的第一个键”。通过查看映射键,将该键与currentTime进行比较,并在其中一个大于测试的currentTime值时立即退出循环,可以解决该问题

 类似资料:
  • 我有一个简单的JavaLocalDateTime如下: 它的结果是: 我希望是2021年3月23日下午1点17分 我在这里错过了什么?

  • 我想做一个考勤应用程序,我真的很困惑iOS和Firebase中的日期和时间。

  • 问题内容: 我正在尝试将一个实例转换为一个实例。 我没有得到编译器错误,但是实例值是错误的。 我认为这不起作用,因为它存储时间而不是。 我正在使用JDK 1.8版。 问题答案: 您的输入实际上是一个。简单地将其解析为a 然后从中获取会更简单。无需担心时区,无需保留某些传统课程(避免并在可能的情况下…)

  • 何时何地哪个更可取? 我不知道他们之间到底有什么区别。 来自LocalDateTime的文档 ...时间表示为纳秒精度。例如,值“2007 年 10 月 2 日 13:45.30.123456789”可以存储在 LocalDateTime 中。 我假设LocalDateTime也可以接受纳秒。所以我想,我可以用LocalDateTime替换我的代码,它们被声明为TimeStamp。如果我错了,请纠

  • 问题内容: 从服务器上,我得到了这种格式的datetime变量:它是UTC时间。我想使用JavaScript将其转换为当前用户的浏览器时间。 如何使用JavaScript或jQuery完成此操作? 问题答案: 在将字符串转换为javascript中的日期之前,将’UTC’附加到字符串中:

  • 当我记录这段代码时,我得到了两个输出: 我得到了这些日志: 是否丢失了其原始时区? 我怎么会在乎呢?