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与Android技术栈

从API到DSL —— 使用 Kotlin 特性为爬虫框架进一步封装

NetDiscovery 是一款基于 Vert.x、RxJava 2 等框架实现的爬虫框架。

1554
来自专栏小灰灰

SpringMVC返回图片的几种方式

主要借助的是 HttpServletResponse这个对象,实现case如下

2427
来自专栏学习力

《Java从入门到放弃》框架入门篇:springMVC数据传递

1394
来自专栏闻道于事

Mybatis,Spring,SpringMVC框架面试题

Mybatis测试 1,   Mybatis的核心是(  sqlsessionfactory    ) 2,   使用Mybatis持久化框架进行数据查询需要返...

1.8K5
来自专栏GreenLeaves

C# 文件读写系列二

读取文件原则上非常简单,但它不是通过FileInfo和DirectoryInfo来完成的,关于FileInfo和DirectoryInfo请参考C# 文件操作系...

2869
来自专栏zhisheng

JAVA虚拟机关闭钩子(Shutdown Hook)

当你认真的去看一个组件的源码的时候,你会经常看见这种关闭钩子的函数,如果你不了解的话,谷歌一下,你就会发现如下文章就是搜索引擎出来的第一篇,不愧是出自我们优秀的...

1843
来自专栏Hongten

spring开发_spring中Bean的作用域_singleton_prototype

http://www.cnblogs.com/hongten/gallery/image/112385.html

1352
来自专栏Java 技术分享

JavaWeb 之文件的上传下载

4285
来自专栏大内老A

IoC+AOP的简单实现

对EnterLib有所了解的人应该知道,其中有一个名叫Policy Injection的AOP框架;而整个EnterLib完全建立在另一个叫作Unity的底层框...

1959
来自专栏pangguoming

springboot使用hibernate validator校验

一、参数校验  在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码...

2K5

扫码关注云+社区