java - 从包含周名和时间的字符串中解析时间
问题描述
我正在尝试仅解析时间,忽略字符串中的工作日,格式如下:“Monday 5AM”
这是我的代码:
String dateTxt = "Monday 5AM";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ha");
LocalTime lt = LocalTime.parse(dateTxt, formatter);
它抛出一个异常:
java.time.format.DateTimeParseException: Text 'Saturday 1AM' could not be parsed
如何仅从该字符串中解析时间?
解决方案
您需要将格式更改为
"EEEE ha"
我还建议设置区域设置,以便您拥有正确的语言并支持 AM/PM
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE ha", Locale.ENGLISH);
我看到这个问题现在已经被编辑了,如果你只想要从解析LocalTime
对象中提取或格式化它的时间
LocalTime lt = LocalTime.parse(dateTxt, formatter);
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("h a", Locale.ENGLISH);
System.out.println(lt);
System.out.println(lt.format(formatter2));
05:00 凌晨
5 点
推荐阅读
- google-apps-script - 当单个用户打开他们的共享文档时,提示授权?
- c# - Cannot delete rows in GridView(PosgtesQL) by _RowDeleting command
- ios - 在 iOS 上清除 HTML5 日期输入
- xtext - 跨(未引用)文件的 Xtext 验证
- angular - NgRx - 无法从 CustomSerializer Router Store 访问的多级路由参数
- r - 调查大量二元变量和度量变量之间的相关性
- python-3.x - elasticsearch_dsl aggs 'top-hits' 操作返回字典而不是文档
- javascript - 使用hammer.js进行克隆以交换到html元素
- c# - StructureMap & Lazy Initialization via Constructor with Interfaces
- angular - ngOnChanges 在选项卡之间交换数据