spring mvc 时间日期转换(@DateTimeFormat 注解)

两种用法示例:

    @GetMapping("/date")
	public String datest(@DateTimeFormat(iso=ISO.DATE) Date date){
		System.out.println(date);
		return "lalalal";
	}
    @GetMapping("/date")
	public String datest(@DateTimeFormat(pattern = "yyyy/MM/dd") Date date){
		System.out.println(date);
		return "lalalal";
	}

使用 @DateTimeFormat 注解有两种做法,如上面代码所示。

示例说明:

第一种是按照ISO国际标准的日期时间格式解析参数中的日期时间的,具体格式为此枚举变量:

	/**
	 * Common ISO date time format patterns.
	 */
	enum ISO {

		/**
		 * The most common ISO Date Format {@code yyyy-MM-dd},
		 * e.g. "2000-10-31".
		 */
		DATE,

		/**
		 * The most common ISO Time Format {@code HH:mm:ss.SSSZ},
		 * e.g. "01:30:00.000-05:00".
		 */
		TIME,

		/**
		 * The most common ISO DateTime Format {@code yyyy-MM-dd'T'HH:mm:ss.SSSZ},
		 * e.g. "2000-10-31T01:30:00.000-05:00".
		 * <p>This is the default if no annotation value is specified.
		 */
		DATE_TIME,

		/**
		 * Indicates that no ISO-based format pattern should be applied.
		 */
		NONE
	}

第二种是按照自定义的模式来解析时间,模式字符串的定义与遵循以下规则(摘自jdk 1.8 SimpleDateFormat):

  • The following pattern letters are defined (all other characters from 'A' to 'Z' and from 'a' to 'z' are reserved):
  • The following examples show how date and time patterns are interpreted in the U.S. locale. The given date and time are 2001-07-04 12:08:56 local time in the U.S. Pacific Time time zone.

其他补充:

@ExceptionHandler 异常处理:

	@ExceptionHandler(Exception.class)
	public String handle(Exception exception){
		if (exception instanceof MethodArgumentTypeMismatchException) {
			return "传入参数格式不正确或参数解析异常!";
		}
		return exception.getMessage();
	}

如上所示,利用此注解@ExceptionHandler就可以实现对异常的处理。

若此示例代码段放在@Controller类中,就只可以处理它所在类被请求过程中发生的异常。如果需要处理多个@Controller类被请求过程中发生的异常,就需要将此代码段放在单独的一个类中,并且这个类需要加上@ControllerAdvice(或@RestControllerAdvice)注解。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏海纳周报

修饰者模式

java.io 这个包里有一个类,比较特别,这就是BufferedReader。我们从JDK的源码里,找到它的实现: public class Buffered...

32612
来自专栏小樱的经验随笔

POJ 3278 Catch That Cow(BFS,板子题)

Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions...

2655
来自专栏专注 Java 基础分享

Java 字节流操作

     在java中我们使用输入流来向一个字节序列对象中写入,使用输出流来向输出其内容。C语言中只使用一个File包处理一切文件操作,而在java中却有着...

1849
来自专栏mukekeheart的iOS之旅

No.015 3Sum

15. 3Sum Total Accepted: 131800 Total Submissions: 675028 Difficulty: Medium   G...

2168
来自专栏数据结构与算法

POJ 3207 Ikki's Story IV - Panda's Trick(2-SAT)

Description liympanda, one of Ikki’s friend, likes playing games with Ikki. Toda...

3516
来自专栏小樱的经验随笔

HDU 3783 ZOJ

ZOJ Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/...

2656
来自专栏前端儿

Tree

Little Valentine liked playing with binary trees very much. Her favorite game wa...

1142
来自专栏用户3030674的专栏

java写文件读写操作(IO流,字节流)

/** * IO流的数据写入和读取 * 在本质上是用的FileReader("c:text.txt")或FileWriter("c:text2.txt")...

661
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-22总结转换流,随机访问流,合并流,序列化流,Properties

(3)转换流: package cn.itcast_04; import java.io.BufferedWriter; import java.io.IOEx...

3807
来自专栏郭耀华‘s Blog

全面掌握IO(输入/输出流)

File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不...

34915

扫描关注云+社区