使用 java datetimeformatter 从星期几解析日期
parsing date from day of week with java datetimeformatter
我正在使用 java 程序解析来自短信服务的文本,我发现在使用 DateTimeFormatter 时 'E' 或 'e' 是一周中几天的模式字符,并且字符数决定了格式类型(即 'E' = T,'EE' = Tu,'EEE' = Tue,等等......)但在我的程序中我从来没有确定消息将包含什么格式。
如果我要检查星期几,是否可以使用单一模式检查所有格式?如果不是,当我检查完全写出的日期(字符长度不同)时,连续有多少个 E 将包括星期一(6 个字母)和星期三(9 个字母)?
例如:
String singleWordFromMessage = "thursday";
LocalDateTime potentialDate = LocalDateTime.parse(singleWordFromMessage, DateTimeFormatter.ofPattern("EEEE"));
我不知道它在文档中是如何工作的,而且我在这里的搜索到目前为止还没有结果。在此先感谢您的帮助。
正如@RC 指出的,我错过了:
"Text: The text style is determined based on the number of pattern letters used. Less than 4 pattern letters will use the short form. Exactly 4 pattern letters will use the full form. Exactly 5 pattern letters will use the narrow form. "
因此模式 "EEEE" 将格式化为当天的全名,无论长度如何。这些模式似乎不支持多种类型,但同样可以通过将字符串剥离到 'short' 或 'narrow' 日来实现。
感谢大家的帮助。
我正在使用 java 程序解析来自短信服务的文本,我发现在使用 DateTimeFormatter 时 'E' 或 'e' 是一周中几天的模式字符,并且字符数决定了格式类型(即 'E' = T,'EE' = Tu,'EEE' = Tue,等等......)但在我的程序中我从来没有确定消息将包含什么格式。
如果我要检查星期几,是否可以使用单一模式检查所有格式?如果不是,当我检查完全写出的日期(字符长度不同)时,连续有多少个 E 将包括星期一(6 个字母)和星期三(9 个字母)?
例如:
String singleWordFromMessage = "thursday";
LocalDateTime potentialDate = LocalDateTime.parse(singleWordFromMessage, DateTimeFormatter.ofPattern("EEEE"));
我不知道它在文档中是如何工作的,而且我在这里的搜索到目前为止还没有结果。在此先感谢您的帮助。
正如@RC 指出的,我错过了:
"Text: The text style is determined based on the number of pattern letters used. Less than 4 pattern letters will use the short form. Exactly 4 pattern letters will use the full form. Exactly 5 pattern letters will use the narrow form. "
因此模式 "EEEE" 将格式化为当天的全名,无论长度如何。这些模式似乎不支持多种类型,但同样可以通过将字符串剥离到 'short' 或 'narrow' 日来实现。
感谢大家的帮助。