使用java datetimeformatter从星期几解析日期

Mer*_*tio 5 java parsing dayofweek datetime-format

我正在使用 java 程序解析来自短信服务的文本,我看到在使用 DateTimeFormatter 时,'E' 或 'e' 是一周中几天的模式字符,并且字符数决定了格式的类型(即'E' = T, 'EE' = Tu, 'EEE' = Tue, 等等...) 但在我的程序中,我永远不确定消息将包含什么格式。

如果我要检查一周中的哪一天,是否可以使用单个模式检查所有格式?如果没有,当我检查完全写出的天数(字符长度不同)时,连续有多少个 E 将同时包含星期一(6 个字母)和星期三(9 个字母)?

例如:

String singleWordFromMessage = "thursday";
LocalDateTime potentialDate = LocalDateTime.parse(singleWordFromMessage, DateTimeFormatter.ofPattern("EEEE"));
Run Code Online (Sandbox Code Playgroud)

我错过了文档中的工作方式,到目前为止我在这里的搜索没有取得成果。在此先感谢您的帮助。

Mer*_*tio 5

正如@RC 指出的那样,我错过了:

“文本:文本样式根据使用的模式字母数量确定。少于 4 个模式字母将使用短格式。正好 4 个模式字母将使用完整格式。正好 5 个模式字母将使用窄格式。”

因此,无论长度如何,模式“EEEE”都将格式化为当天的全名。这些模式似乎不支持多种类型,但同样可以通过将字符串剥离为“短”或“窄”日来实现。

感谢所有的帮助。