当前位置:网站首页>@DateTimeFormat注解
@DateTimeFormat注解
2022-08-02 03:18:00 【bsegebr】
@DateTimeFormat注解
前言
前言在使用@DateTimeFormat进行格式化注解时,总是不能匹配前端传入的。格式总是报错
我这里使用的是pattern进行解析的的但是前端是给我传入的ISO类型的导致不能匹配所以总是报错。后来我们进行查看源码得到了答案。
源码解析
看下源码解析:
那么我们来看下。后端使用@DateTimeFormat 注解时处理时间前前端应该如何传值。
- 使用 @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) 使用iso属性即代表前端需要出入ISO标准时间
var date = new Date()
date.toISOString()
// 国际标准组织(ISO)格式,输出:‘2021-11-26T06:07:15.870Z’
date.toJson()
// 和上面的一致(ISO格式)。 输出:‘2021-11-26T06:07:15.870Z’ - 使用 @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocateDate date 使用ISO属性是传入的ISO标准的日期
var date = new Date()
date.format(“yyyy-MM-dd”);// “2021-11-26” - 使用 @DateTimeFormat(iso = DateTimeFormat.ISO.Time) LocaDateTime dateTime 使用ISO属性是传入的ISO标准的日期
var date = new Date()
js将其格式化为 "01:30:00.000-05:00’ - 使用@DateTimeFormat(parttern=“yyyy-MM-dd”) 使用字符串格式化车成为日期。这里的parttern可以自定义成其他的类型
var date = new Date()js将其格式化为字符串 "yyyy-MM-dd"即可。
我们再看一下总结:
@DateTimeFormat注解可对java.util.Date,java.util.Calendar,java.long.Long以及Joda时间类型的属性进行标注,有以下几个互斥属性三个属性不能同时使用:
● iso:类型为DateTimeFormat.ISO.有以下几个常用的可选值。DateTimeFormat.ISO.DATE:格式为yyyy-MM-dd.
DateTimeFormat.ISO.DATE_TIME:格式为yyyy-MM-dd hh:mm:ss.SSSZ.
DateTimeFormat.ISO.TIME:格式为hh:mm:ss.SSSZ.
DateTimeFormat.ISO.NONE:表示不应使用ISO格式化时间.
● pattern:类型为String,使用自定义的时间格式化串,如"yyyy/mm/dd h:mm:ss".
● style:类型为string,通过样式指定日期时间格式,由两位字符组成,第一位带代表日期,第二位标识时间格式一下是几个常用的可选值
S:短日期/时间的格式
M:中日期/时间格式
L:长日期/时间的格式
F:完整日期/时间的格式
-:忽略日期/时间的格式
同时我们看下前端对日期的处理的都要哪些函数
var d = new Date();
console.log(d); // 输出:Mon Nov 04 2021 21:50:33 GMT+0800 (中国标准时间)
console.log(d.toDateString()); // 日期字符串,输出:'Fri Nov 26 2021'
console.log(d.toGMTString()); // 格林威治时间,输出:'Fri, 26 Nov 2021 07:03:27 GMT'
console.log(d.toISOString()); // 国际标准组织(ISO)格式,输出:2021-11-26T06:07:15.870Z
console.log(d.toJSON()); // 输出:22021-11-26T06:07:15.870Z
console.log(d.toLocaleDateString()); // 转换为本地日期格式,视环境而定,输出:'2021/11/26'
console.log(d.toLocaleString()); // 转换为本地日期和时间格式,视环境而定,输出:'2021/11/26 下午3:02:30'
console.log(d.toLocaleTimeString()); // 转换为本地时间格式,视环境而定,输出:'下午3:03:48'
console.log(d.toString()); // 转换为字符串,输出:'Fri Nov 26 2021 15:01:26 GMT+0800 (中国标准时间)'
console.log(d.toTimeString()); // 转换为时间字符串,输出:'15:01:40 GMT+0800 (中国标准时间)'
console.log(d.toUTCString()); // 转换为世界时间,输出:'Fri, 26 Nov 2021 07:01:56 GMT'
同样更加推荐使用moment.js这个函数库对时间进行处理。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
随机推荐
HCIP第十一天_MPLS实验
MySQL8.0与MySQL5.7差异分析
MySQL中的各种锁(行锁、间隙锁、临键锁等等LBCC)
mysql8.0安装教程与配置(最详细)操作简单
py0_二十一天计划书
基于优化的多核局部费舍尔判别分析的故障分类
5.合宙Air32F103_LCD_key
R16 Type II量化反馈码本的产生
Redis笔记进阶篇:万字长文-整理Redis,各种知识点,建议收藏
MySQL分页查询的5种方法
Ribbon本地实现负载均衡
多个el-select下拉框无法选中相同内容
基于分布式随机森林的火电厂燃烧系统设备建模方法
为什么四个字节的float表示的范围比八个字节的long要广
线性代数学习笔记2-2:向量空间、子空间、最大无关组、基、秩与空间维数
线性代数学习笔记3-3:逆矩阵的理解
7-40 奥运排行榜 (25 分)多项排序
CV-Model [4]: MobileNet v3
线性代数学习笔记3-2:矩阵乘法的理解
2022.7.30 js notes Operators and flow controllers, loops