为什么网页时间格式和数据库的不一样

为什么网页时间格式和数据库的不一样,第1张

在access中查询或在页面中处理。

1、查询access时格式化一下,format(时间字段,'yyyy-mm-dd'),

2、在页面上也可以格式化,根据你编程用的语言看看吧。不知道你用的是什么平台。

前端传毫秒

1、不加@JsonFormat

前端:1517191582000(毫秒)

后台:private Date trialTime

列表返回的时间格式:毫秒

2、加@JsonFormat

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

前端:1517191582000(毫秒)

后台:

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

private Date trialTime

列表返回的时间格式:yyyy-MM-dd HH:mm:ss

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

前端:1517191582000(毫秒)

后台:

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

private Date trialTime

列表返回的时间格式:yyyy-MM-dd

前端传"2018-01-03T02:01:13.678Z"

1、不加@JsonFormat

前端:"2018-01-03T02:01:13.678Z"

后台:private Date trialTime

列表返回的时间格式:毫秒

2、加@JsonFormat

① 不支持"yyyy-MM-dd HH:mm:ss"这种格式

② 支持"yyyy-MM-dd"这种格式

前端:"2018-01-03T02:01:13.678Z"

后台:

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

private Date trialTime

列表返回的时间格式:yyyy-MM-dd

前端传"yyyy-MM-dd HH:mm:ss"

1、不加@JsonFormat报错

2、加@JsonFormat

① 支持"yyyy-MM-dd HH:mm:ss"这种格式

前端:"yyyy-MM-dd HH:mm:ss"

后台:

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

private Date trialTime

列表返回的时间格式:yyyy-MM-dd HH:mm:ss

② 不支持"yyyy-MM-dd"这种格式,因为前端传的时间格式已经限定死了

前端传"yyyy-MM-dd"

1、不加@JsonFormat (注:get请求,但是是用@RequestParam Map formData接收的,所以不影响。见贵安项目ArticleListControl中articleInfo接口)

前端:"yyyy-MM-dd"

后台:private Date trialTime

列表返回的时间格式:毫秒

2、加@JsonFormat

① 不支持"yyyy-MM-dd HH:mm:ss"这种格式

② 支持"yyyy-MM-dd"这种格式

前端:"yyyy-MM-dd"

后台:

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

private Date trialTime

列表返回的时间格式:yyyy-MM-dd

总结

Jackson不支持这种时间格式的:yyyy-MM-dd HH:mm:ss,试了一下,果然报错来了

Can not construct instance of java.util.Date from String value '2015-12-22 10:10:10': not a valid representation (error: Failed to parse Date value '2015-12-22 10:10:10': Can not parse date "2015-12-22 10:10:10": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))

看提示好像只支持这几种:

"yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"

主要看前端到→后台是否需要序列化

get请求时

① 后台用 @ModelAttribute T model 方式接收前端数据,会把传进来的参数序列化成对象T,前端传的参数有一个是String类型的 2018-12-25 时间,但是对象T中是date类型,所以如果不做转换的话会报400错误,在对象T的对应参数上加 @DateTimeFormat(pattern = "yyyy-MM-dd") 。通过@DateTimeFormat这个日期格式化注解,就可以将前端传入的字符串格式化为日期类型可以识别的内容信息了。当然也可以使用@DateTimeFormat(iso=ISO.DATE)这样子的格式化来进行处理,效果是一样的。JsonFormat适用于json方式?

② 如果后台用 @RequestParam Map formData 接收前端参数的话,即使前端传的时间是 yyyy-MM-dd 方式也不会报错,因为Map可以接收任意类型的参数

post请求时

因为post请求是用 @RequestBody

@JsonFormat与@DateTimeFormat注解的使用


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9420133.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存