java - 当用户在 Java8 中输入错误的日期格式时如何给出错误消息
问题描述
如果用户使用错误的格式输入,我想给出错误消息。正确的格式是“yyyy-MM-dd HH:mm:ss”。我怎么能把它作为一个条件?
例如 if (yyyy <0 ) { sout("请输入正确的年份")}
这是我用来询问用户并格式化它的代码
Scanner keyboard = new Scanner(System.in);
String hour = "00:00:00";
System.out.println("Please enter Date : ");
String time = keyboard.next()+" "+ hour;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(time, formatter);
解决方案
您可以使用正则表达式比较:
while input doesn't match the regex pattern
print "Please enter date in the correct format: yyyy-MM-dd HH:mm:ss"
continue with the rest of the code
RegEx 模式可以是:
\d{4}-[01]\d-[0-3]\d [0-2]\d:[0-5]\d:[0-5]\d(?:.\d+)? Z?
您可以使用此站点创建和测试 RegEx 模式
推荐阅读
- python - 是否有 Pandas 函数可以根据时间序列创建 7 天移动平均线?
- python - 如何更改 Pandas 系列中的单个值?
- x86-16 - 存储两个数字的 LCM 的变量 ans 的值不正确(8086 程序)
- dialogflow-es - DialogFlow WelcomeDefaultIntent
- android-10.0 - 为什么 MediaScannerConnection.scanFile(this, new String[] { uri_path_or_subfolder }, null,... ) 在 AndroidQ,R (SDK29,30) 中没有被弃用?
- java - Android PeriodicWorkRequest (work v1.0.1 [arch, not androidx]) 每 15m 产生 20 次而不是一次,为什么?
- apache-kafka - Apache Kafka 如何与多个代理和单个代理一起工作
- javascript - 当我单击其中一个问题时,我需要帮助来禁用其他问题的下拉样式
- haskell - 比较字符串中的 2 个字符(haskell)
- winforms - System.Threading.ThreadStateException; 使用 Clipbord.setText/setDataObject 崩溃表单