springboot处理时间date,在前后端传输遇到问题,时间插入数据库会提前一天?

1.问题描述

  • 1.数据库里的日期为date类型,java如何进行接收?
  • 2.前端传过来的时间,后端如何接收?
  • 3.后端如何将时间存入数据库?
  • 4.写入数据库的时间会比传入的时间提前一天?

2.解决方法

2.1两个注解解决接收问题

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date award_date;//这里是你自己的时间类型的字段,在它上面加上这两个注解即可
  • @DateTimeFormat入参注解;格式化接收前端的时间字符串为正确格式
  • @JsonFormat出参注解;格式化从数据库库里面查询出来的时间为正确格式
  • pattern参数可以自由定制。
  • timezone参数用于调整时区

2.2一个参数解决时间提前问题

这只要是由于时区的问题,所以时间上面会提前8小时,自己把它加上去就好了。可以直接在连接数据库的语句后面添加参数serverTimezone=GMT%2B8
我这里加载在末尾,拼接完整的如下所示:

    url: jdbc:mysql://127.0.0.1:3308/stusystem?characterEncoding=utf8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2B8

参数里的GMT%2B8实际上就是GMT+8,只不过在拼接的时候得用%2B才行。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 Postman 中获取当前时间并将其赋值给请求参数中的某个字段值后面插入数据库,可以通过 Postman 的 Pre-request Script 和 Tests 来实现。 以下是一个示例,假设有一个名为 `/api/create` 的接口可以用于插入数据到数据库中,并且需要在请求中包含 `name` 和 `time` 两个字段,其中 `time` 字段的值需要在当前时间的基础上加上一定的时间偏移量: 1. 在 Postman 中打开对应的请求。 2. 在请求中添加 `time` 字段,值设为 `{{current_time}}`。这里使用了 Postman 的变量语法,表示需要在请求发送前将 `{{current_time}}` 替换为当前时间。 3. 在请求中添加一个 Header,名为 `Content-Type`,值为 `application/json`。 4. 在请求的 Pre-request Script 中添加以下代码,用于获取当前时间并将其赋值给变量 `current_time`,并在 `time` 字段的值后面加上一定的时间偏移量: ``` // 获取当前时间并格式化为 ISO 8601 格式 var currentTime = new Date().toISOString(); // 计算时间偏移量(这里假设偏移量为 1 小时) var hoursOffset = 1; var offsetTime = new Date(new Date().getTime() + hoursOffset * 60 * 60 * 1000).toISOString(); // 更新请求的 body,将当前时间赋值给 time 字段 var requestBody = { name: "John Doe", time: offsetTime }; pm.request.body.raw = JSON.stringify(requestBody); // 设置环境变量,用于在 Tests 中检查是否插入成功 pm.environment.set("current_time", offsetTime); ``` 在上面的代码中,我们首先获取当前时间并格式化为 ISO 8601 格式,然后计算时间偏移量,并将偏移后的时间赋值给 `time` 字段。最后设置一个 Postman 环境变量 `current_time`,用于在 Tests 中检查是否插入成功。 5. 在请求的 Tests 中添加以下代码,检查数据是否插入成功: ``` pm.test("Data inserted successfully", function () { var data = pm.response.json(); pm.expect(data.name).to.equal("John Doe"); pm.expect(data.time).to.equal(pm.environment.get("current_time")); }); ``` 在上面的代码中,我们使用了 `pm.environment.get` 方法来获取之前设置的环境变量 `current_time`,并将其与接口返回的数据进行比较。 6. 发送请求,检查数据是否插入成功并且时间偏移量是否正确。 需要注意的是,以上代码仅为示例,具体实现需要根据你的具体情况进行调整。同时,如果你需要在请求中使用其他类型的时间格式,可以使用 JavaScript 的 Date 对象提供的方法进行格式化。 另外,为了保证安全性,建议不要在请求中直接将敏感信息(如数据库密码)硬编码,而是使用 Postman 的环境变量来存储和获取这些信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是lk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值