ZonedDateTime.parse 不适用于解析 am 或 pm 时间

2023-12-25

我正在学习java,试图构建一个工具,根据用户输入(时间、时区A和时区B的输入)将特定时间从时区A转换为时区B。这是关于该工具以特定格式收集时间并将其转换为 ZonedDateTime 对象的部分。

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;

public static String fullTime;
public static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm a");
public static ZonedDateTime newTime;

public static void getHourAndMinutes(){
        System.out.print("Please type in the time you have in mind in format hh:mm am/pm\n");
        Scanner in = new Scanner(System.in);
        fullTime = in.nextLine();
        System.out.println(fullTime);
        newTime = ZonedDateTime.parse(fullTime, formatter);

我尝试以 10:30PM、10:30 PM、10:30pm、10:30 pm、10:30p、10:30 p 等格式输入时间,所有这些条目都导致抛出异常错误,我遇到这样的错误

Exception in thread "main" java.time.format.DateTimeParseException: Text '10:30 pm' could not be parsed at index 6

知道我可能做错了什么吗?谢谢!


由于用户输入的内容仅代表时间,因此您需要将其解析为当地时间 https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html,另一个错误是你使用了错误的模式,H是一天中的某个时间 (0-23);你需要h in 日期时间格式化程序 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm a");

LocalTime localTime = LocalTime.parse("10:30 PM",formatter);

将输入解析后LocalTime https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalTime.html你可以把它转换成分区日期时间 https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html。但您必须指定一个日期(LocalDate https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalDate.html)以及时间和区域。您在问题中的代码只有一天中的时间,并且缺少实例化所需的日期和区域ZonedDateTime.

ZonedDateTime dateTime = localTime.atDate(LocalDate.now()).atZone(ZoneId.systemDefault());

然后你可以使用将其转换为另一个区域withZoneSameInstant https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html#withZoneSameInstant-java.time.ZoneId-

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

ZonedDateTime.parse 不适用于解析 am 或 pm 时间 的相关文章

  • Java简单加密

    我想加密存储在磁盘上的文本 配置 文件 尝试使用DES http en wikipedia org wiki Data Encryption Standard加密 我在客户端计算机上遇到了致命错误 后来我发现该算法无法处理重音字符 我怀疑这
  • 如何根据 JComboBox 选择动态地将控件添加到表单?

    我正在尝试使用 Swing 创建一个简单的 java 表单 这个想法的基本思想是用户将在 JComboBox 中选择 0 到 5 然后 通过 ItemStateChanged 侦听器 将动态添加几个面板 每个面板包含 4 个控件 因此 如果
  • Criteria eager fetch-joined 集合以避免 n+1 选择

    假设 Item 和 Bid 是实体 一个 Item 有多个 Bid 它们被映射到休眠在典型的父子关系中
  • 使用 CXF 通过 HTTP 基本身份验证使用 Web 服务时出现 401 错误

    我正在尝试在 JUnit 测试中使用使用 HTTP 基本身份验证 使用 Apache CXF 的远程 Web 服务 我收到的错误是 javax xml ws WebServiceException Failed to access the
  • 逐行读取 JTextPane

    有没有办法读取a的内容JTextPane逐行 很像 BufferedReader 吗 Element root textPane getDocument getDefaultRootElement 获得根元素后 您可以检查存在多少个子元素
  • 如何向 OkHttp 请求拦截器添加标头?

    我将这个拦截器添加到我的 OkHttp 客户端 public class RequestTokenInterceptor implements Interceptor Override public Response intercept C
  • AES BadPaddingException

    如果我使用错误的密钥或错误的盐进行解密 则会引发 BadPaddingException 我希望返回一个不正确的字符串 doFinal 导致解密方法出现异常 信息 This is just an example Unfug S F V s
  • JSF 错误 - IllegalStateException:PWC3999:提交响应后无法创建会话[重复]

    这个问题在这里已经有答案了 我是 JSF 新手 正在构建一个使用 Facelet 创建的应用程序 这是我的模板master xhtml
  • Android 防火墙与 VpnService

    我正在尝试使用 BS 项目的 VpnService 为 Android 实现一个简单的防火墙 我选择 VpnService 因为它将在非 root 设备上运行 它将记录连接并让您过滤连接 基于IP 有一个应用程序可以做到这一点 因此这是可能
  • Android Google 地图:隐藏整个地图的多边形或形状

    我试图隐藏除一个区域之外的整个地图 因为我使用的多边形在我想要显示的区域中有一个洞 问题在于 根据缩放的不同 空白区域会被多边形的颜色覆盖 或者多边形会失去其颜色 这是代码 polygon hide all world map float
  • 酷还是傻? Catch(异常[NamingException, CreateException] e)

    我正在编写一些代码 我注意到异常处理中的一种模式让我思考 try do stuff throws JMS Create and NamingException catch NamingException e log1 e rollback
  • 为什么 Casbah / Java MongoDB 驱动程序最终会出现 java.lang.IllegalArgumentException?

    我使用时看到一个奇怪的问题casbah java driver 当驱动程序尝试从 mongo 创建响应时 我不断遇到以下异常 Oct 16 2012 10 45 07 AM com mongodb DBTCPConnector MyPort
  • APACHE POI 从 Java 中的 Excel 获取精确的字体颜色

    在 Excel 工作表中 如何使用 Java 中的 Apache POI 获取准确的字体颜色值 我试图通过使用来获取字体颜色 org apache poi ss usermodel Font f book getFontAt style g
  • 使用泛型进行选择排序

    我对整数进行了选择排序并且它正在工作 当我尝试修改程序以使用泛型时 编译器会抱怨 我不知道如何修复它 如果有人能提出一些建议和建设性意见 我将不胜感激 这是代码 public class SelelctionSort public stat
  • C3P0:生产中未返回的连接超时?

    参数unreturnedConnectionTimeout给定时间段后未返回的连接超时 我正在尝试决定是否应该在我的制作中使用它persistence xml 使用它的一大优点是连接池将能够从泄漏的连接中恢复 一个很大的缺点是泄漏的连接将很
  • JavaFX 8 默认消息图标

    随着 JavaFX 的最近几次更新 我们收到了警报 我想获取消息的默认图标 错误 警告 在Swing中 我可以通过一些方式获取L F消息图标UIManager的属性 如何在 JavaFX 中获取消息的默认图标 它们是包含在属性中 还是由 C
  • 飞碟 - html 实体未呈现

    我正在使用 Flying saucer lib 生成 pdf 但我对一些 html 实体有问题 我已经在寻找解决方案 我在这个论坛和其他地方找到了很多提示 但仍然存在问题 我尝试过这种方法 http sdtidbits blogspot c
  • Java分数计算器

    我对 Java 编程还很陌生 我的 AP 计算机编程课程有作业要完成 所以请耐心等待 我必须弄清楚如何将两个分数相乘 我想知道是否有任何方法可以在方法内部声明变量并在该方法外部使用它 我在介绍方法中的 while 循环 谢谢您 希望这不会令
  • 丰富:数据表行跨度问题

    我需要创建一个 rich dataTable 甚至扩展 具有以下功能 我有一个公司类 其中包含产品对象的集合 我想展示下表 我仍然没有弄清楚如何使用子表执行此操作 在所有示例中 我发现子表具有与主表完全相同的列 据推测 我需要在前两列中使用
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System

随机推荐

  • 如何在 Chrome 中使用 Node 8 检查器?

    我熟悉使用 inspect从节点 7 或其他版本开始的选项 现在在节点 8 上 它不起作用 今天我像往常一样要求节点使用检查器 node inspect debug brk node modules mocha bin mocha o te
  • 有没有办法用Java代码获得一个只有数字(没有小数、空格)的Android软键盘?

    我有一个使用不同键盘布局的 iPhone 应用程序 有些是自定义的 有些是内置的 仅数字 小数点 ISBN 编号的自定义 X 按钮 我想在 Android 上做同样的事情 但即使是普通的InputType TYPE CLASS NUMBER
  • REST API 真的是 RESTful 吗?

    我是这个游戏的新手 所以我可能会误解一些事情 事实上 如果有人告诉我我误解了事情 那将是一种恩惠 也许这个人会足够体贴 为我指明正确的道路 但 中的一个 指导方针 or 最佳实践 REST 适用于 Web 服务 http en wikipe
  • 从静态工厂类访问 ASP.NET Core DI 容器

    我创建了一个 ASP NET Core MVC WebApi 站点 该站点具有基于 James Still 博客文章的 RabbitMQ 订阅者使用 RabbitMQ 进行真实世界的 PubSub 消息传递 http www squarew
  • ASP.NET Core 2.0 Razor 与 Angular/React/等

    我开始开发企业级 Web 应用程序 该应用程序将有许多单独的网页 但其中两个页面更集中且非常繁重 繁重 如大量用户交互 显示大量数据的模式 Websocket 连接 聊天等 我被任命为该项目的首席架构师 因此我正在对最新的 Web 框架进行
  • 使用 RabbitMQ 的工作池和多租户队列

    我开发的 Web 应用程序是一个基于多租户云的应用程序 很多客户端 每个客户端都有自己独立的 环境 但都在共享的硬件集上 我们正在引入用户批量处理的功能为后期处理工作 批处理工作的类型实际上并不重要 只是数量足够 没有工作队列就不太实际 我
  • Eclipse Neon - 禁用欢迎屏幕

    如何禁用 Eclipse Neon 中的欢迎屏幕 虽然有一个Eclipse Juno 的类似问题 https stackoverflow com questions 14637755 eclipse juno how to disable
  • Gridview 中的 DropDownList SelectedIndexChanged 未触发!

    虽然我一直在寻找解决方案 但看到很多帖子向我展示了如何做到这一点 但当 DropDownList 更改时 我无法触发我的 SelectedIndexChanged 事件 DropDownList AutoPostBack 设置为 True
  • 用户权限更改后强制重新验证

    在我的应用程序中 我可以更改后端的用户权限和角色 当用户登录并且我删除用户的角色时 该用户仍然可以访问他实际上不再被允许访问的内容 因为他缺少该角色 仅当用户通过注销 登录重新验证自己时 更改才会生效 所以我的问题是 我可以访问登录用户 不
  • 在 contentEditable

    我正在寻找一个明确的跨浏览器解决方案 当 contentEditable on 重新获得焦点时 将光标 插入符号位置设置为最后一个已知位置 内容可编辑 div 的默认功能似乎是每次单击时将插入符号 光标移动到 div 中文本的开头 这是不可
  • Sparklyr:validate_java_version_line(主版本)中的错误

    R version 3 5 2 2018 12 20 Eggshell Igloo Copyright C 2018 The R Foundation for Statistical Computing Platform x86 64 ap
  • 从 Android 中的原始文件夹设置铃声

    我正在尝试读取 访问 Raw 文件夹中的 mp3 文件 然后将其设置为默认铃声 但它无法找到它 我的代码是 Uri path Uri parse android resource com applenty LearnToCount raw
  • SwiftUI CoreData 异步获取

    我在 macOS 应用程序中使用 CoreData 和 SwiftUI 我主要利用的是 FetchRequest在 SwiftUI 中 向数据库发出我的请求 我注意到当数据库中有多个对象时 FetchRequest 需要更多时间 此外 我正
  • 从 Image.open 获得的数组,其中 np.asarray 是不可变的 - “赋值目标是只读的”

    我的目标是读取一组 PNG 文件 使用以下命令创建图像Image open filename 并将它们转换为只有 1 和 0 的简单二维数组 PNG 的格式为 RGBA 值大多只有 255 和 0 在图像中 边缘通常是灰度值 我想在二维数组
  • 事件处理程序中的图像调整器 User.Identity

    添加了一个 AuthorizeImage 事件处理程序来限制图像访问 当我尝试检查用户名和身份验证状态时注意到以下内容 下面不会导致异常 但似乎会破坏它 无论是否通过身份验证 都会显示未找到图像的默认图标 测试了 this User 相同的
  • ODP.NET是否需要安装Oracle客户端

    我必须从 NET 代码连接 Oracle 11g DB 为此 我安装了 ODP NET 但在阅读了一些论坛帖子后 我意识到我也需要安装 Oracle 客户端 真的吗 我看到 Oracle 客户端的大小为 ca 2GB 我真的需要安装这么大的
  • ConcurrentMap.remove() 是否在 get() 返回 null 之前提供happens-before 边?

    调用之前线程中是否有操作ConcurrentMap remove 保证发生在之前看到从另一个线程删除后的操作 文档 https docs oracle com javase 8 docs api java util concurrent p
  • 谷歌地图API只返回城市?

    我正在尝试使用 Google 地图 API 仅从 json 请求返回城市 https maps googleapis com maps api place autocomplete json input green 20lanes type
  • Spyder - UMD 已删除:模块

    我已经用 python 闲逛了大约一个月了 有些事情困扰着我 我使用 python x y 工具包 它附带了简洁的 Spyder IDE 我的问题涉及 Spyder 的 UMD 用户模块删除器 I found this http mcsp
  • ZonedDateTime.parse 不适用于解析 am 或 pm 时间

    我正在学习java 试图构建一个工具 根据用户输入 时间 时区A和时区B的输入 将特定时间从时区A转换为时区B 这是关于该工具以特定格式收集时间并将其转换为 ZonedDateTime 对象的部分 import java time Zone