@JsonFormat和@DateTimeFormat 实践测试

JsonFormat :出参

DateTimeFormate : 入参

http://www.iteye.com/problems/53816

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date timeline



@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")

@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")


JsonFormate会覆盖http://blog.csdn.net/silyvin/article/details/71450863中的整体配置


http://blog.csdn.net/jixuju/article/details/52530413

pojo的bean里面通常会有Date类型的数据,直接通过@ResponseBody返回出去的是一个长整型时间戳(从1970到该变量时间的毫秒数),关于原因,网上很多,此处不细讲。如果想要返回自定义的日期格式,如:yyyymmddhhmmss,需做相关处理,网上有很多处理方式,大体都是继承、重写,比较复杂。实际上JSON已有注解@JsonFormat支持,使用实例:

@JsonFormat(timezone = "GMT+8", pattern = "yyyyMMddHHmmss")
private Date createTime;

作用:1)入参时,请求报文只需要传入yyyymmddhhmmss字符串进来,则自动转换为Date类型数据。2)出参时,Date类型的数据自动转换为14位的字符串返回出去

详细可参阅: http://fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/fasterxml/jackson/annotation/JsonFormat.html

相关的其他注解:

@JsonIgnoreProperties 此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。 @JsonIgnoreProperties(value = { "word" })  
@JsonIgnore 此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。
@JsonSerialize 此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。 @JsonSerialize(using = CustomDoubleSerialize.class)  
@JsonDeserialize 此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize  @JsonDeserialize(using = CustomDateDeserialize.class) 


入参我个人测试下来有问题,必须用DateTimeFormat

参考:http://blog.csdn.net/chenleixing/article/details/45190371




2017.11.8补充

JsonFormat注释于public类型属性或者get函数才有效,private属性无效


@jsonformat和@datetimeformat是两个常用的注解,用于在Java应用程序中格式化日期和时间。 @jsonformat注解用于在对象的属性上指定日期和时间的格式,以便在将对象转换为JSON字符串时使用。例如,我们可以使用以下方式在对象的属性上使用@jsonformat注解来指定日期的格式: ```java public class User { private String name; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date birthDate; // getters and setters } ``` 在上面的例子中,@JsonFormat注解指定了birthDate属性的日期格式为"yyyy-MM-dd HH:mm:ss"。当将User对象转换为JSON字符串时,birthDate属性的值将按照指定的格式进行格式化。 @datetimeformat注解用于在Spring框架中控制器方法参数或返回值上指定日期和时间的格式。它可以用于将请求参数的字符串解析为日期对象,或者将日期对象格式化为响应体中的字符串。例如,我们可以使用以下方式在控制器方法参数上使用@datetimeformat注解来指定日期的格式: ```java @GetMapping("/users") public String getUser(@DateTimeFormat(pattern = "yyyy-MM-dd") Date birthDate) { // 处理逻辑 } ``` 在上面的例子中,@DateTimeFormat注解指定了birthDate参数的日期格式为"yyyy-MM-dd"。当请求到达该控制器方法时,会将请求参数中的字符串解析为指定格式的日期对象。 总的来说,@jsonformat和@datetimeformat注解都是用于在Java应用程序中格式化日期和时间,但用途略有不同。@jsonformat注解用于将对象转换为JSON字符串时指定日期格式,而@datetimeformat注解用于在Spring框架中控制器方法参数或返回值上指定日期格式。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值