题目要求:用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间.用DateTimeFormatter实现.
代码实现如下:
测试类:
package exam68;
/**
* <br>
* 2020年1月10日上午8:27:47
* @author 吴鹏辉
* @version 1.0
*/
public class Test {
/**
* 程序入口
*
* @param args 入口参数
*/
public static void main(String[] args) {
/**
* 进入时间格式器
*/
DateTime.startIn();
}
}
日期时间类
package exam68;
import java.util.Scanner;
/**
* <br>
* 日期时间类
* 2020年1月10日上午9:30:34
* @author 吴鹏辉
* @version 1.0
*/
public class DateTime {
/**
* 闰年日期正则
*/
private static final String LEEP_YEAR = Regex.LEEP_YEAR.getDesc();
/**
* 平年日期正则
*/
private static final String COMMON_YEAR = Regex.COMMON_YEAR.getDesc();
/**
* 时间正则
*/
private static final String TIME = Regex.TIME.getDesc();
/**
* 私有构造器 不能创建实例
*/
private DateTime() {
}
/**
* 时间格式器,开始方法
*/
public static void startIn() {
// 进入程序的提示语
Notice.inTip();
// 获取扫描器
Scanner sc = new Scanner(System.in);
// 判断是否有下一行输入
while (sc.hasNextLine()) {
// 获取下一行输入输入的日期时间
// trim()方法忽略在控制台输出时,前后的无用空格
String dateTime = sc.nextLine().trim();
if (dateTime.matches("exit|退出")) {
// 退出程序
Notice.printNotice(Notice.EXIT_FINASH);
// 关闭扫描器
sc.close();
break;
}
// 把传入的日期时间匹配相对应的正则表达式
else if ((dateTime.matches(LEEP_YEAR + TIME)) || (dateTime.matches(COMMON_YEAR + TIME))) {
// 将匹配好的时间传入工具类的获取日期时间的方法中
DateTimeTool.getDateTime(dateTime);
// 退出程序
Notice.printNotice(Notice.EXIT_PROGRAM);
continue;
} else {
// 匹配失败,提示错误
Notice.printNotice(Notice.DATE_TIME_ERROR);
// 可进行退出
Notice.printNotice(Notice.EXIT_PROGRAM);
}
}
}
}
信息提示类:
package exam68;
/**
* <br>
* 信息提示类
* 2020年1月10日下午9:52:29
* @author 吴鹏辉
* @version 1.0
*/
public class Notice {
/**
* 退出程序指示语
*/
public static final String EXIT_PROGRAM = "若退出程序,请输入'exit'或'退出' !";
/**
* 退出程序完成指示语
*/
public static final String EXIT_FINASH = "退出程序,欢迎下次使用!";
/**
* 日期错误指示语
*/
public static final String DATE_ERROR = "日期错误";
/**
* 日期分隔符错误指示语
*/
public static final String DATE_SPLIT_ERROR = "日期分隔符错误,请重新输入:\n";
/**
* 时间错误指示语
*/
public static final String TIME_ERROR = "时间错误";
/**
* 日期时间错误指示语
*/
public static final String DATE_TIME_ERROR = "日期时间不合法,请重新输入:\n";
/**
* 进入程序的提示语(small tip)
*/
public static void inTip() {
System.out.println("欢迎使用日期时间格式器!");
//退出程序提示语
System.out.println(<