通过DateTimeFormatter格式器格式化日期时间

该博客介绍如何利用Java的DateTimeFormatter将用户通过扫描器输入的年月日时分格式化为类似企业微信聊天记录显示的时间,并提供代码实现。
摘要由CSDN通过智能技术生成

题目要求:用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间.用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(<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值