(简单)允许 24:00:00 和 00:00:00 作为输入的日期格式

2024-01-12

我已经寻找这个有一段时间了,到目前为止还没有成功。你知道是否有一个“DateFormat”这样的类,它允许我使用“00:00:00”和“24:00:00”作为输入参数(它们都是午夜),但是当调用“getHour()”时“结果我会得到 0 或 24?

使用“kk”只允许我有 范围,同时我正在寻找 范围格式


价值24:00不代表在LocalTime因为这完全是第二天的一部分。考虑了以下模型:24:00可以表示为一部分LocalTime,但结论是,在很多用例中它会非常令人困惑,并且产生的错误比它解决的错误还要多。


有支持24:00 in java.time然而。完全可以使用标准格式化技术来解析它,但是有必要使用 SMART 或 LENIENT 模式,请参阅旋转变压器风格 http://docs.oracle.com/javase/8/docs/api/java/time/format/ResolverStyle.html。默认模式是 SMART,但是格式化程序常量DateTimeFormatter like DateTimeFormatter.ISO_LOCAL_DATE_TIME处于 STRICT 模式。因此,ofPattern()默认为 SMART 模式:

static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm");

LocalDateTime ldt = LocalDateTime.parse("2012-12-03T24:00", FORMATTER);
System.out.println(ldt);  // 2012-12-04T00:00

请注意,这也适用于OffsetDateTime and ZonedDateTime。标准解析器Instant支持24:00没有特殊的格式化程序:

Instant instant = Instant.parse("2015-01-01T24:00:00Z");
System.out.println(instant);  // 2015-01-02T00:00:00Z

任何格式化程序都可以使用以下命令转换为 SMART 或 LENIENT 模式withResolverStyle() http://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#withResolverStyle-java.time.format.ResolverStyle-如下:

DateTimeFormatter f = ...  // obtain a formatter somehow
DateTimeFormatter smartMode = f.withResolverStyle(ResolverStyle.SMART);

// for example
f = DateTimeFormatter.ISO_LOCAL_DATE_TIME.withResolverStyle(ResolverStyle.SMART);

支持的第二个要素是解析多余天数() http://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#parsedExcessDays--。这允许在仅解析时间时获得多余的日期:

static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm");

TemporalAccessor parsed = TIME_FORMATTER.parse("24:00");
LocalTime lt = LocalTime.from(parsed);
Period excessDays = parsed.query(DateTimeFormatter.parsedExcessDays());
System.out.println(lt + " + " + excessDays);  // 00:00 + P1D

最后,给高级用户的提示。理论上应该可以编写自己的实现Temporal这是一个副本LocalTime但有支持24:00作为有效值。这样的班级,说LocalTimeWithEndOfDay,然后可以毫无问题地使用格式化程序/解析器(并且可能是一个很好的补充三十额外 http://www.threeten.org/threeten-extra/.

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

(简单)允许 24:00:00 和 00:00:00 作为输入的日期格式 的相关文章

  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • Microsoft Graph 身份验证 - 委派权限

    我可以使用 Microsoft Graph 访问资源无需用户即可访问 https developer microsoft com en us graph docs concepts auth v2 service 但是 此方法不允许我访问需
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 将多模块 Maven 项目导入 Eclipse 时出现问题 (STS 2.5.2)

    我刚刚花了最后一个小时查看 Stackoverflow com 上的线程 尝试将 Maven 项目导入到 Spring ToolSuite 2 5 2 中 Maven 项目有多个模块 当我使用 STS 中的 Import 向导导入项目时 所
  • Java中未绑定通配符泛型的用途和要点是什么?

    我不明白未绑定通配符泛型有什么用 具有上限的绑定通配符泛型 stuff for Object item stuff System out println item Since PrintStream println 可以处理所有引用类型 通
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是

随机推荐

  • 从 ExecutionEngine 调用 C/C++ 函数

    我正在学习 llvm 想要对我的想法进行概念验证 基本上 我想分割我的编译器和运行时 编译器将给出一个 bc 运行时将通过 ParseBitcodeFile 加载它并使用 ExecutionEngine 来运行它 这部分正在发挥作用 现在
  • 通过链接克服云代码解析限制 1000?

    我有以下函数 我用它来确定用户在记分牌中的排名 Parse Cloud define getUserGlobalRank function request response var usernameString request params
  • 如何从网格中检查复选框获取详细信息?

    我有EditorGridPanel 网格的ColumnModel包括TextField ComboBox和CheckBox 编辑 TextField 或 ComboBox 后 将触发 afteredit 事件 其中包含有关已编辑字段的详细信
  • 使用 es6 进行 chrome 调试

    我正在尝试在我的项目中使用 Ecmascript 2015 但我发现很难在特定位置添加断点 我认为设置断点是合乎逻辑的位置 我在 chrome 中将 enable javascript harmony 标志设置为 true 如果有帮助 但我
  • 如何使用 MiniTest 测试记录器消息?

    我有一个应用程序 我想测试我是否正确 来自我的记录器的消息 一个简短的示例 您可以在 log4r 和 logger 之间切换 gem minitest require minitest autorun require log4r requi
  • 共享首选项中的数据缓存

    我的应用程序中有 2 个进程 从一个进程我将数据保存到SharedPreferences 从第二个过程 检索 当我检索数据时 我收到SharedPreferences使用旧数据 我检查 xml 文件 发现当前文件中的数据和收到的数据不同 看
  • 在 GO 中使用 RSA-SHA 进行签名和解码

    我正在尝试签署一个字符串 然后用公钥验证它 我的验证结果为空 我究竟做错了什么 package main import crypto crypto rand crypto rsa crypto sha256 crypto x509 enco
  • 如何在 SwiftUI macOS 中创建急救人员

    我正在尝试制作我的文本字段 NSViewRepresentable包裹NSTextField 出现时的第一个响应者 我已经测试了很多答案thread https stackoverflow com questions 56507839 sw
  • 使用 VBA 隐藏数据透视表

    如何使用 VBA 隐藏数据透视表 我尝试访问 PivotTables index Visible 但没有Visible财产为PivotTable目的 如果用户更改某些复选框 我需要隐藏这些数据透视表 也许我可以将它们隐藏在白盒子后面 但在我
  • 如何将 ListItemCollection (dropdownlist.items) 转换为字典

    如何转换ListItemCollection DropDownList items to a Dictionary
  • 如何使用 IMAP 和 PHP 保存电子邮件中的图像附件?

    我已经成功编写了连接到我的邮件服务器并检索所有新邮件的标头和正文的脚本 我想更进一步检测附件是否存在 仅图像 如果存在 则下载到服务器 如何使用 PHP 和 IMAP 来实现这一点 提前致谢 KimNyholm 发布了一组 imap 客户端
  • 使用 ffmpeg 逐帧写入视频

    我正在尝试使用 ffmpeg 逐帧编写视频 如下所述 http zulko github io blog 2013 09 27 read and write video frames in python using ffmpeg http
  • 转换 Spark 数据框中的日期模式

    我在 Spark 数据框中有一列字符串数据类型 日期采用 yyyy MM dd 模式 我想以 MM dd yyyy 模式显示列值 我的数据是 val df sc parallelize Array steak 1990 01 01 2000
  • 如何使用 python 从 xml 中提取特定数据?

    我对 python 比较陌生 我一直在尝试通过实践方法学习Python 我通过做euler项目学习了c c 现在我正在学习如何从文件中提取数据 我已经掌握了从简单文本文件中提取数据的窍门 但我有点陷入 xml 文件中 我试图做的一个例子 我
  • Django -vs- Grails -vs-?

    我想知道是否有类似 Django 的简单 Web 应用程序开发与良好的部署 调试和其他工具相结合 Django 是一个非常高效的框架 用于构建内容丰富的网站 与 Java 中的一些怪物相比 这是我尝试过的最好的 呼吸新鲜空气 然而它是用 P
  • 用地址而不是数字填充队列

    我想知道是否可以将地址而不是其内容推送到队列中 例如 我有一个二维数组 我正在围绕它移动 我想记录我去过的地方 但我不一定关心这些地方的内容 是的 您只需将队列声明为指针队列 例如 int 或您正在使用的任何类型 这是代码 include
  • 如果浮点范围更大,通过浮点的往返是否始终定义行为?

    假设我有两种算术类型 一种是整数类型 I 和一个浮点数 F 我还假设std numeric limits i max 小于std numeric limits i
  • 更新现有的 Yaml 文件

    我想更新我现有的user yaml文件而不擦除其他对象或属性 我已经用谷歌搜索了两天寻找解决方案 但没有运气 实际输出 name Test User age 30 address line1 My Address Line 1 line2
  • M1 MBP Rails db:create 引发 msgpack 错误

    您好 我是 Ruby on Rails 新手 当我跑步时rails db create 在M1 MBP上运行时出现以下错误 Library Ruby Gems 2 6 0 gems msgpack 1 4 2 lib msgpack rb
  • (简单)允许 24:00:00 和 00:00:00 作为输入的日期格式

    我已经寻找这个有一段时间了 到目前为止还没有成功 你知道是否有一个 DateFormat 这样的类 它允许我使用 00 00 00 和 24 00 00 作为输入参数 它们都是午夜 但是当调用 getHour 时 结果我会得到 0 或 24