解决java中时间参数的问题

在java的日常开发中,我们经常需要去接收前端传递过来的时间字符串,同时给前端返回数据时,也会涉及到时间字段的数据传递,那么我们要如何处理这些字段呢?

知识铺垫:java最后返回的时间是时间世界(世界UTC时间和中国时间有八个小时的时差!)

在java中,我们将时间字符串转化成日期对象,方式主要有二种。

  • 通过字符串接收前端传过来的时间字符串,然后使用java的日期类,按照特定的格式将其转化成日期类(一般使用简单日期格式化类处理)
  • 通过注解的方式,直接将前端传来的时间字符串转化成日期类对象

方式一(现在不常用了):

public void test(String stime) {    String pattern = "yyyy-MM-dd HH:mm:ss";SimpleDateFormat sdf = new SimpleDateFormat(pattern);Date startTime = null;try {startTime = sdf.parse(stime);} catch (ParseException e) {e.printStackTrace();}
}

这种方式的话主要是先接收参数,在根据特定的规则将其转化为时间类 

方式2:使用注解的方式,直接将前端传来的时间字符串转化成日期类对象

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")这个注解可以解决url传时间字符串的问题,只要前端传的是合法的字符串,就可以正确的转化,
但如果只使用这个注解,那么当后端返回直接参数时,返回的时间会被转化成时间世界(世界UTC时间和中国时间有八个小时的时差!)

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")这个注解可以同时解决前端的时间传参和后端参数的返回,返回的时间不会乱,
但需要注意的是这个注解不是springboot自带的,而是fastjson这个依赖带的,所以要使用它,需要导入这个依赖

注意:@DateTimeFormat这个注解是java自带的注解,而@JsonFormat是fastjson这个依赖带的,所以要使用它,需要导入这个依赖

现在开发一般都会直接使用@JsonFormat这种方式,因为它既解决了前端的传参,又解决了服务端给前端返回时间字段的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鲁工小装载机-前后桥传动轴油封更换记录

鲁工装载机 因前后桥大量漏齿轮油,故拆开查看、更换油封 一: 如图圈起来的地方是螺丝和钢板相别,用200的焊接电流用电焊机点开一个豁口后拆除螺丝。 转轴是拆除传动轴后的样子。 这就是拆下来的样子,这玩意插上边那图&…

【论文阅读】A Survey on Large Language Model based Autonomous Agents

文章目录 1 大语言模型的构建1.1分析模块 profiling module1.2 记忆模块 memory module1.2.1 记忆结构1.2.2 记忆形式1.2.3 记忆运行 1.3 规划模块 planning module1.3.1 无反馈规划1.3.2 有反馈计划 1.4 执行模块 action module1.4.1 执行目标1.4.2 执行空间 2 Agent能力提升2…

深度剖析:前端如何驾驭海量数据,实现流畅渲染的多种途径

文章目录 一、分批渲染1、setTimeout定时器分批渲染2、使用requestAnimationFrame()改进渲染2.1、什么是requestAnimationFrame2.2、为什么使用requestAnimationFrame而不是setTimeout或setInterval2.3、requestAnimationFrame的优势和适用场景 二、滚动触底加载数据三、Elemen…

支付宝支付之收款码支付

文章目录 收款码支付接入流程安全设计系统交互流程交易状态统一收单交易支付接口请求参数测试结果查询支付撤销支付退款支付退款结果退款说明 收款码支付 继:支付宝支付之入门支付 接入流程 安全设计 支付宝为了保证交易安全采取了一系列安全手段以保证交易安全。…

账号和权限的管理1

文章目录 修改用户账号的属性usermod格式常用选项 用户账号的初始化配置文件文件来源主要的用户初始配置文件 组账号文件添加组账号groupadd格式常用选项其他选项 删除组账号groupdel格式 查询账号信息groups格式 id格式 finger格式 W、who、users格式 文件/目录的权限和归属访…

emptyDir + initContainer实现ConfigMap的动态更新(K8s相关)

1. 絮絮叨叨 K8s部署服务时,一般都需要使用ConfigMap定义一些配置文件例如,部署分布式SQL引擎Presto,会在ConfigMap中定义coordinator、worker所需的配置文件以node.properties为例,node.environment和node.data-dir的值将由Helm…

android 通过gradle去除aar的重复资源图片

背景:项目中引入了aar包,结果导致资源出问题了,于是需要对下面aar包进行重复资源去除操作 操作具体如下: 目录:app/build.gradle 末尾配置 apply from: "${project.rootDir}/scripts/excludewidgetAar.gradle&qu…

【web】2、集成插件

1、element-plus 官网地址:设计 | Element Plus 安装 plus 及 icon 图标库 1.1 官网提供plus安装方法: 1.2 官网提供 icon 安装方法 1.3 安装 pnpm install element-plus element-plus/icons-vue main.ts全局安装element-plus,element-plus默认支持语言英语设…

matlab编辑稀疏单位方阵

创建 10001000 稀疏单位方阵,并查看稀疏模式。 (1) I speye(1000); spy(I)(2) S speye(400,800); spy(S)此命令等同于 speye([400 800])。

Nginx中封装的数据结构

Nginx中封装的数据结构 Nginx中封装的数据结构整型ngx_str_t【字符串】ngx_list_t【链表】ngx_table_elt_t【key/value】ngx_buf_tngx_chain_t Nginx中封装的数据结构 整型 typedef intptr_t ngx_int_t; typedef uintptr_t ngx_uint_t;ngx_str_t【字符串】 typ…

qt6开发环境配置杂记

很多同学不重视环境配置问题,这是工程问题,实际工作中,如果不真正搞懂环境配置,后期可能会遇到各种坑。 QT是一套开发框架,最终要翻译成c去执行。总体而言,就是下面三张框图: (工程…

Spring底层原理之bean的加载方式一 用XML方式声明bean 自定义bean及加载第三方bean 2024详解

目录 用XML方式声明bean 首先我们创建一个空的java工程 我们要导入一个spring的依赖 注意在maven工程里瞅一眼 我们创建一个业务层接口 还有四个实现类 我们最初的spingboot生命bean的方式是通过xml声明 我们在resources文件夹下创建一个配置文件 我们书写代码 首先初…

AI Agent:技术原理与未来趋势

在人工智能的快速发展中,AI Agent作为一项创新技术,正逐渐成为研究和应用的热点。AI Agent不仅仅是执行命令的程序,它们能够感知环境、做出决策并采取行动,展现出类似人类的群体协作能力。本文将探讨AI Agent的技术原理、开源框架…

使用vite官网和vue3官网分别都可以创建vue3项目

问: npm init vitelatest 和 npm create vuelatest创建的vue3项目有什么区别? 回答: npm init vitelatest 和 npm create vuelatest 分别是使用 Vite 和 Vue CLI 工具创建 Vue 项目的两种方式,它们之间有几个主要区别: 1. **构建工具:** …

忍法:声音克隆之术

前言: 最近因为一直在给肚子里面的宝宝做故事胎教,每天(其实是看自己心情抽空讲下故事)都要给宝宝讲故事,心想反正宝宝也看不见我,只听我的声音,干脆偷个懒,克隆自己的声音&#xf…

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程

方法一:PHP_diseval_extension禁用 Linux CentOS 禁用php的eval函数详细图文教程_centos php 禁用 eval-CSDN博客 这个方法make报错,懒得费时间处理,直接用第二种 方法二:suhosin禁用 不支持PHP8,官方只支持PHP7以下…

【电源专题】为什么带电量计芯片的电池MOS保护要放在高侧

在实际的电量计电池开发中,发现一个很奇怪的现象。传统电池保护IC往往都是将充电保护和放电保护的两个MOS管放在低侧的。如下所示是文章:【电源专题】读一读单节锂电池保护IC规格书 可以看到M1和M2两个MOS管是放在PB-(也就是电池的负端),我们叫做低端。 而BQ28Z610电…

目标检测常用涨点方法:注意力机制小结(空间注意力、通道注意力、CBAM等)

1.通道注意力 通道注意力(Channel Attention)是在通道维度上对输入数据进行学习,再对不同的通道分配相应的权重表示重要性,从而达到“分配注意力”的效果。SENet(Squeeze and Excitation networks) 是一个典型的使用通…

Swift宏的实现

上篇介绍了Swift宏的定义与生声明,本篇主要看看是Swift宏的具体实现。结合Swift中Codable协议,封装一个工具让类或者结构体自动实现Codable协议,并且添加一些协议中没有的功能。 关于Codable协议 Codable很好,但是有一些缺陷&…

yaklang window安装 vscode运行得到“hello world”

资源来源:旅程伊始:Yak 语言环境安装与搭建环境 | Yak Program Language 安装yak语言非常简单,管理员权限打开命令行运行以下命令: powershell (new-object System.Net.WebClient).DownloadFile(https://yaklang.oss-cn-beijing…