Java 中是否有一个类可以对一周中的当地时间进行编码?

2024-02-09

我想制定一个一周一周的时间表。

因为每周的时间表都是相同的,所以我需要存储的唯一信息是星期几及其发生的时间。例如。Monday 2:30pm。实际日期并不重要,时区也不重要。

到目前为止,我一直在编写将日期和时间分开的代码,使用DayOfWeek枚举和LocalTime键入以配合时间。但我开始遇到使用两个变量来管理时间而不是像 DateTime 这样的单一方便类型的问题。例如。如果我想获得周二晚上 11 点后 3 小时的时间,我可以使用LocalTime.plus()获取凌晨 2 点的方法,但这并没有考虑到当天的滚动,我必须单独检查和更新它。

我还想确保我所拥有的任何解决方案都能从周末到开始:例如。周日晚上 10 点后 5 小时应该是周一凌晨 3 点。

JDK 中是否存在这样的类,或者是否很容易定义自己的时间类型?或者使用 java 提供的 LocalDateTime 来解决问题,并以某种方式忽略日期组件会更好吗?


JDK中没有这样的内置类,但是自己创建这样的类应该不会太难。

我认为你在使用方面走得很好LocalTime and DayOfWeek。确保编写一个包装这两个组件的类,然后添加方法以将时间单位添加到包装对象。

方法之一could看起来像这样:

public WeekDayTime plusHours(int hours) {
    int plusDays = (hours / 24);
    int plusHours = hours % 24;
    if (this.time.getHours() + plusHours >= 24) {
        plusDays++;
        plusHours -= 24;
    }
    DayOfWeek newDayOfWeek = ...; // Calculate the day of week somehow
    LocalTime newTime = this.time.plusHours(plusHours);
    return new WeekDayTime(newDayOfWeek, newTime);
}

或者,您也可以包装一个LocalDateTime并隐藏日期部分。这将使您免于执行这些计算。但随后请确保您实施了例如equals方法正确。

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

Java 中是否有一个类可以对一周中的当地时间进行编码? 的相关文章

  • Python 3.6 DateTime Strptime 返回错误,而 Python 3.7 运行良好

    我刚刚为日期数据创建了一个数据类型 它返回一个datetime datetime object 这是代码 import datetime class Date def new cls dateTime args kwargs return
  • Gradle 同步失败:配置项目“:lib”时出现问题

    我正在尝试在 android studio 中构建一个项目 但它总是失败 并出现名为 org gradle api ProjectConfigurationException A problem occurred configuring p
  • 在 Postgres 中为特定查询设置 work_mem

    我正在使用一个委托给 JDBC 驱动程序的库PostgreSQL 而且有些查询非常复杂 需要更多内存 我不想设置work mem对于所有查询来说都是大的 只是这个子集 问题是执行以下代码会导致错误 pseudo code for what
  • 为什么从 Eclipse 导出的可运行 JAR 不起作用?

    我有一个在 Eclipse 中运行良好的项目 但是 当我将其导出到可运行的 JAR 其中包含依赖项 时 它不会运行 从控制台运行 JAR 时出现的错误是 编辑 之前没有使用 jar 运行它 INFO Loading XML bean def
  • 无法获取未知属性“运行时”Gradle 7.0

    我最近切换到 gradle 7 0 现在无法构建我的项目 jar 并出现错误 无法获取 org gradle api internal artifacts configurations DefaultConfigurationContain
  • 如何使用 hibernate 过滤器过滤 hibernate 中的实体

    我需要过滤对象列表中的实体 例如 public class Student private int id private List
  • 从 java.util.TimeZone 转换为 org.joda.DateTimeZone

    在Java中如何将一个实例转换为java util TimeZone to org joda DateTimeZone并保持夏令时 Joda Time 处于维护模式 The 乔达时间 http www joda org joda time
  • 在 IIS 中运行 Java Web 应用程序

    有人找到了在 IIS 中运行 Java Web 应用程序的方法吗 在我看来 编写一个将 Jetty 或自定义 servlet 容器与 IIS 集成的 ISAPI 插件 这个词正确吗 应该是完全可能的 这样做的好处是 许多优秀的高端 Java
  • 检查 jar 是否从 shell 运行

    我有一个 java jar 程序 我试图在我的机器启动时运行它 理想情况下 shell 脚本将每 60 秒检查一次以确保 jar 正在运行 我如何检查 jar 是否在 centos 上运行 这似乎不起作用 我当前的 sh 文件 bin ba
  • Java GUI,根据actionListener更改面板

    我在两个不同的面板中添加了两个按钮 如果单击第一个按钮 则需要转到下一个面板 其中包含第二个按钮 但是当我单击第一个按钮时 该按钮没有被替换 Java GUI import java awt event ActionEvent import
  • 为什么ArrayList没有getSize()而不是size()?

    我在一些 JSP 页面中大量使用 ArrayList 我想像这样访问 ArrayList myArrayList size 但由于对象必须符合 JavaBean 标准 其中myArrayList getMyPropertyName is m
  • 查找前 N 个五边形数

    我必须找到第一个N pentagonal numbers 1 从 1 100 并每行显示 10 个 我必须使用getPentagonalNumber int n 方法也是如此 显然这就是它存在的原因 到目前为止 这是我的代码 package
  • java代码的等效vb代码

    谁能告诉我这段Java代码到底做了什么 SecureRandom random SecureRandom getInstance SHA1PRNG byte bytes new byte 20 synchronized random ran
  • 公交车公共交通算法

    我正在开发一个可以查找公交路线的离线 C 应用程序 我可以提取时间表 巴士 路线数据 我正在寻找适用于基本数据的最简单的解决方案 可以使用什么算法来查找从巴士站 A 到巴士站 B 的路线 是否有适用于 C Java 的开源解决方案 数据库的
  • 清单合并失败:需要为 显式指定 android:exported

    我的清单文件有问题 错误消息 清单合并失败 android 需要为 明确指定导出 面向 Android 12 及更高版本的应用需要指定显式值android exported当相应的组件定义了意图过滤器时 有关详细信息 请参阅 https d
  • 当列表中不存在 X 时,从列表中查找大于 X 的值

    我试图从列表中查找大于特定值 在我的情况下已知 的值 Example Given list 1 2 5 10 15 list is sorted 查找大于的值X 7在这种情况下 期望的结果 返回一个包含值的列表 10 15 我尝试使用jav
  • 找不到满足版本限制的“com.google.code.findbugs:jsr305”版本

    当生成签名的 APK 进行发布时 我收到此错误消息 Cannot find a version of com google code findbugs jsr305 that satisfies the version constraint
  • SQL准备语句如何通过多个可能的菜单选择进行选择?

    所以我有 4 个菜单选择 产品 位置 课程类型和类别 所有这些都可以为空 使用 JSF 编程 但这应该与这个问题无关 因为它是一个 SQL 问题 菜单选择将向托管 bean 发送用户选择的变量 并使用准备好的语句使用用户选择的菜单中的信息
  • 找不到 `activityViewModels()` Hilt Android

    我在我的项目中使用 Hilt 和 MVVM 我想要一个viewModel from activityViewModel在 2 个活动中使用相同的内容 但我的 Android Studio 说未解析的参考 我的应用程序 build gradl
  • 仅以 UTC 格式存储 Doctrine2 日期时间

    有类似的问题 但我找不到任何与 Doctrine2 配置相关的问题 所以这里 我已经阅读了描述 Doctrine2 时区的页面 我只是想澄清一下 因为尚不清楚如何实际使用它 http doctrine orm readthedocs org

随机推荐

  • 显示当天的项目

    我希望创建一个函数 从 mySQL 表中获取随机项目 但让我将返回的项目保留为 当天的项目 换句话说 昨天是 当天的项目 的项目不应再次显示 直到所有其他项目都显示为当天的项目 关于如何以优雅的方式做到这一点有什么建议吗 Thanks 添加
  • 查询 INFORMATION_SCHEMA 时出现死锁

    我有一个进程可以根据已发布的元数据层的更改动态更改 SQL2K5 表结构 例如 如果需要添加新列并且表没有依赖项 步骤将是 1 使用 T SQL 为表中已存在的任何索引和主键创建脚本 这些脚本包含在下面 2 删除表 3 从具有新列的元层重新
  • 在 Swift 3 中将可选字符串转换为双精度

    我有一个选项字符串 想将其转换为双精度 这在 Swift 2 中有效 但自从转换为 Swift 3 后 我得到的值为 0 var dLati 0 0 dLati latitude as NSString doubleValue 我进行了检查
  • firestore规则路径的大小

    我试图在 firestore 规则中使用路径的大小 但无法让任何东西发挥作用 并且在 firestore 文档中找不到有关如何执行此操作的任何参考 我想使用最后一个集合名称作为规则中的参数 所以尝试了以下方法 match test docu
  • IBM Worklight 5.0.6 - 如何向 Android 环境添加启动屏幕?

    我在尝试在 Android 中添加启动屏幕时遇到问题 下面是我使用的代码 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState su
  • T-SQL 将秒格式化为 HH:MM:SS 时间

    有没有什么棘手的方法来格式化秒 例如小时 分钟 秒 例如 3660 秒将显示为 01小时01分00秒 or 01 01 00 我知道执行此操作的标准方法 将所有秒除以 3600 即可得到小时 将剩余秒数除以 60 即可得到分钟 剩下的都是秒
  • 使用 PHP 函数自动向 标签添加宽度和高度属性

    我想要的是一个可以根据用户输入运行的函数 该函数将智能地查找并添加width and height任何属性 img HTML blob 中的标记 以避免图像加载时的页面重排问题 我正在为 PHP 论坛编写发布脚本 其中用户的输入在写入数据库
  • JQuery ajax 加载 XML,在 IE 或 Edge 中不起作用

    这是我目前拥有的 xml
  • 如何获取显示器序列号?

    有谁知道如何用 C 或 C 获取连接的显示器序列号 我找到了一些代码 但它们是用vbs编写的 我不明白 我需要一些用 C 或 C 编写的示例代码 我知道序列号是从 EDID 读取的 但不幸的是我不知道如何 有人可以帮助我吗 Thanks 更
  • 是否可以在无头模式下使用 JDT 加载 eclipse Java 项目?

    我有一个 Eclipse Java 项目 想要获取项目源目录 类路径等信息 我当前的实现解析 project文件 但由于我没有找到任何描述其结构的官方文档 project文件中 我对这种方法的稳健性有些担忧 一种更方便 更可靠的方法是使用
  • 智能指针。何时、何地以及如何?

    首先 由于智能指针有不同类型 我想将这个问题集中在其中两种 引用计数侵入式智能指针和非侵入式智能指针 针对每种指针类型单独询问该问题 我不太确定如何提出我的问题 所以这就是我不问的 我不是问为什么或何时需要智能指针 也不知道我应该使用哪种类
  • 如何在运行时修改我的 App.exe.config 键?

    在我的 app config 中我有这个部分
  • CRAN 包提交 - R CMD 检查

    我正在构建一个想要提交给 CRAN 的包 我完成了 R CMD 检查 使用 devtools check 并确保在构建我的包 devtools build 之前修复所有错误 警告和注释 然后将生成的 tar gz 文件提交到 CRAN 然而
  • 单元测试、黑盒测试和白盒测试[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 什么是单元测试 黑盒测试和白盒测试 我用谷歌搜索 但我发现的所有解释都非常技术性 任何人都可以用适当的例子以简单的方式回答这个问题吗
  • Laravel 4:如果帖子不存在,则使用控制器重定向页面 - 尝试过但到目前为止失败

    我正在使用 Laravel 4 我有一个显示帖子的页面 例如example com posts 1 显示数据库中的第一篇文章 我想要做的是 如果有人尝试访问不存在的网址 则将页面重定向到索引 例如如果没有帖子编号 6 则 example c
  • 将函数包装在同一文件中

    我需要你的建议来包装我现有的功能 我来自测试团队 我需要编写单元测试用例 所以我不想依赖原始定义 所以尝试编写我自己的定义 以下是不应更改的源代码 来源 c include
  • 从 Windows 窗体迁移到 WPF...值得吗?

    我还有一个用 Windows 窗体编写的中等大小的桌面应用程序 由数据库中的 46 个表支持的几十个主要窗体 我正在考虑在 WPF 中重写 UI 但在我去那里之前 我很好奇是否有任何关于进行此类转换的战争故事 I use LLBLGen h
  • .Net 4 的 MiscUtil 会有更新吗?

    我想知道MiscUtil http www yoda arachsys com csharp miscutil 如果我没记错的话 由 Jon Skeet 维护 NET 4 是否会有更新 或者代码现在是否已移至其他地方 我的意思是 解决方案类
  • 在 Qt 中如何将 QVariant 转换为 QString,反之亦然?

    如何将 QVariant 转换为 QString 反之亦然 Thanks 从字符串 QString qs QVariant qv qs 至字符串 QString qs qv toString 提示 阅读help http doc qt io
  • Java 中是否有一个类可以对一周中的当地时间进行编码?

    我想制定一个一周一周的时间表 因为每周的时间表都是相同的 所以我需要存储的唯一信息是星期几及其发生的时间 例如 Monday 2 30pm 实际日期并不重要 时区也不重要 到目前为止 我一直在编写将日期和时间分开的代码 使用DayOfWee