jackson 中JsonFormat date类型字段的使用

为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解
具体格式如下

  @JsonFormat(pattern = "yyyy-MM-dd‘T‘HH:mm:ss.SSSZ", locale = "zh", timezone = "GMT+8")

pattern 指定转化的格式,SSSZ(S指的是微秒,Z指时区)
此处的pattern和java.text.SimpleDateFormat中的Time Patterns一致

Letter    Date or Time Component    Presentation    Examples
G    Era designator    Text    AD
y    Year    Year    1996; 96
Y    Week year    Year    2009; 09
M    Month in year    Month    July; Jul; 07
w    Week in year    Number    27
W    Week in month    Number    2
D    Day in year    Number    189
d    Day in month    Number    10
F    Day of week in month    Number    2
E    Day name in week    Text    Tuesday; Tue
u    Day number of week (1 = Monday, ..., 7 = Sunday)    Number    1
a    Am/pm marker    Text    PM
H    Hour in day (0-23)    Number    0
k    Hour in day (1-24)    Number    24
K    Hour in am/pm (0-11)    Number    0
h    Hour in am/pm (1-12)    Number    12
m    Minute in hour    Number    30
s    Second in minute    Number    55
S    Millisecond    Number    978
z    Time zone    General time zone    Pacific Standard Time; PST; GMT-08:00
Z    Time zone    RFC 822 time zone    -0800
X    Time zone    ISO 8601 time zone    -08; -0800; -08:00

具体的pattern和转化后的date形式如下

Examples
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.
Date and Time Pattern    Result
"yyyy.MM.dd G ‘at‘ HH:mm:ss z"    2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ‘‘yy"    Wed, Jul 4, ‘01
"h:mm a"    12:08 PM
"hh ‘o‘‘clock‘ a, zzzz"    12 o‘clock PM, Pacific Daylight Time
"K:mm a, z"    0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"    02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"    Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"    010704120856-0700
"yyyy-MM-dd‘T‘HH:mm:ss.SSSZ"    2001-07-04T12:08:56.235-0700
"yyyy-MM-dd‘T‘HH:mm:ss.SSSXXX"    2001-07-04T12:08:56.235-07:00
"YYYY-‘W‘ww-u"    2001-W27-3
时间: 2024-10-06 08:09:20

jackson 中JsonFormat date类型字段的使用的相关文章

rabbitmq template发送的消息中,Date类型字段比当前时间晚了8小时

前言 前一阵开发过程遇到的问题,用的rabbitmq template发送消息,消息body里的时间是比当前时间少了8小时的,这种一看就是时区问题了. 就说说为什么出现吧. 之前的配置是这样的: @Bean public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) { RabbitTemplate template = new RabbitTemplate(connectionFactory); templ

rabbitmq template发送的消息中,Date类型字段比当前时间晚8小时

前言 前一阵开发过程遇到的问题,用的 rabbitmq template 发送消息,消息body里的时间是比当前时间少了8小时的,这种一看就是时区问题了. 就说说为什么出现吧. 之前的配置是这样的: @Bean public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) { RabbitTemplate template = new RabbitTemplate(connectionFactory); tem

oracle10g获取Date类型字段无时分秒解决办法!

一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期.时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别. 最近使用 ORACLE 10G,时间字段因需求,设为了DATE类型,发现hibernate用native SQL 查询或ibatis获取result.getObject()的时候显示不了时分秒,原来是JDBC驱动自动把date映射为 java.sql.date,故截断了时分秒信息,如果你使用9i或者11g 的

向mysql中插入Date类型的数据

先看数据库表的定义 date字段为sql.date类型.我要向其中插入指定的日期和当前日期. 一.插入当前日期 思路:先获取当前系统,在将当前系统时间转换成sql类型的时间,然后插入数据库.代码如下 public static void insert_now() throws ClassNotFoundException, SQLException{ java.util.Date utilDate = new Date(); //获取java.util.Date对象---也即当前时间 java.

es中的date类型

JSON中没有date类型,所以es中的date可以是: ①包含格式化的date的字符串,例如"2018-01-01"或者"2018/01/01 12:00:00" ②一个long型的数字,代表从1970年1月1号0点到现在的毫秒数 ③一个integer型的数字,代表从1970年1月1号0点到现在的秒数 在es内部,date被转为UTC,并被存储为一个长整型数字,代表从1970年1月1号0点到现在的毫秒数 date类型字段上的查询会在内部被转为对long型值的范围查

JavaScript中的Date类型详解与moment简介

关于JavaScript中的Date类型,相信JSer们都不会陌生吧,但是也必然为那个复杂难记的各种转换函数所头疼,本文将分享一下我对JS中的Date类型的一些知识小总结,并把其中容易犯错的地方指出来,同时简介和推广moment.js这个js库,希望大家看完文章后以后在对Date类处理如鱼得水. 1 时间的唯一性与多样性 某一时刻在全世界任何地区应该是唯一的,时区的不同是为了让地球不同时区的人的中午十二点都是太阳正上当头,形成交流上没有那么多障碍.而这一标准就是大家熟知的格林威治标准时间(Gre

JavaScript中的Date类型

ECMAScript中的Date类型是在早起Java中的java.util.Date类基础上构建的.为此,Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日0时开始经过的毫秒数来保存日期.在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的100000000年. 要创建一个日期对象,使用new操作符合Date构造函数即可. var now = new Date(); 在调用Date构造函数而不

Struts2中转换Date类型的问题

项目使用 strut2 ,spring,hibernate,提交表单时报错 java.lang.NoSuchMethodException: com.shop.jn.entity.Goods.setBuyDateTime([Ljava.lang.String;)] 异常详细信息: 11:23:30,113  WARN  - Error setting expression 'goods.buyDateTime' with value '[Ljava.lang.String;@109558d' o

将SQL中的Date型字段显示为"yyyy-MM-dd"格式

SQL中的Date型字段在GridView控件中默认显示为yyyy/mm/dd 0:00:00格式,不符合中文习惯.为了使其显示为"yyyy-MM-dd"格式,需要做以下设置:? 1.打开GridView任务栏? 2.设置Date型字段的DataFormatString为{0:yyyy-MM-DD}?