做公司网站,哪个程序用的多怎么做网站聊天视频直播

diannao/2026/1/20 5:39:34/文章来源:
做公司网站,哪个程序用的多,怎么做网站聊天视频直播,双峰做网站,wordpress手机底部导航栏设置作者 | 王磊来源 | Java中文社群#xff08;ID#xff1a;javacn666#xff09;转载请联系授权#xff08;微信ID#xff1a;GG_Stone#xff09;在我们日常工作中#xff0c;时间格式化是一件经常遇到的事儿#xff0c;所以本文我们就来盘点一下 Spring Boot 中时间格… 作者 | 王磊来源 | Java中文社群IDjavacn666转载请联系授权微信IDGG_Stone在我们日常工作中时间格式化是一件经常遇到的事儿所以本文我们就来盘点一下 Spring Boot 中时间格式化的几种方法。时间问题演示为了方便演示我写了一个简单 Spring Boot 项目其中数据库中包含了一张 userinfo 表它的组成结构和数据信息如下项目目录是这样的UserController 实现代码如下RestController RequestMapping(/user) public class UserController {Resourceprivate UserMapper userMapper;RequestMapping(/list)public ListUserInfo getList() {return userMapper.getList();} } UserMapper 实现代码如下Mapper public interface UserMapper {public ListUserInfo getList(); } UserInfo 实现代码如下Data public class UserInfo {private int id;private String username;private Date createtime;private Date updatetime; } UserMapper.xml 实现代码如下?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserMapperselect idgetList resultTypecom.example.demo.model.UserInfoselect * from userinfo/select /mapper 经过以上内容的编写我们就制作出了一个简单的 Spring Boot 项目了。接下来我们使用 PostMan 来模拟调用 UserController 接口执行结果如下从上述结果可以看出时间字段 createtime 和 updatetime 的显示方式是很“凌乱”的并不符合我们的阅读习惯也不能直接展示给前端的用户使用这时候我们就需要对时间进行格式化处理了。时间格式化的方法总共包含以下 5 种。1.前端时间格式化如果后端在公司中拥有绝对的话语权或者是后端比较强势的情况下我们可以将时间格式化的这个“锅”强行甩给前端来处理。为了让这个“锅”甩的更平顺一些磊哥不做厨师都可惜了咱们可以给前端工程师提供切实可行的时间格式化方法实现代码如下。JS 版时间格式化function dateFormat(fmt, date) {let ret;const opt {Y: date.getFullYear().toString(), // 年m: (date.getMonth() 1).toString(), // 月d: date.getDate().toString(), // 日H: date.getHours().toString(), // 时M: date.getMinutes().toString(), // 分S: date.getSeconds().toString() // 秒// 有其他格式化字符需求可以继续添加必须转化成字符串};for (let k in opt) {ret new RegExp(( k )).exec(fmt);if (ret) {fmt fmt.replace(ret[1], (ret[1].length 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, 0)))};};return fmt; } 方法调用let date new Date(); dateFormat(YYYY-mm-dd HH:MM:SS, date); 2021-07-25 21:45:12 2.SimpleDateFormat格式化大多数情况下我们还是需要自力更生各扫门前雪的这个时候我们后端程序员就需要发挥自己的特长了我们提供的第 1 个时间格式化的方法是使用 SimpleDateFormat 来进行时间格式化它也是 JDK 8 之前重要的时间格式化方法它的核心实现代码如下// 定义时间格式化对象和定义格式化样式 SimpleDateFormat dateFormat new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); // 格式化时间对象 String date dateFormat.format(new Date()) 接下来我们使用 SimpleDateFormat 来实现一下本项目中的时间格式化它的实现代码如下RequestMapping(/list) public ListUserInfo getList() {// 定义时间格式化对象SimpleDateFormat dateFormat new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);ListUserInfo list userMapper.getList();// 循环执行时间格式化list.forEach(item - {// 使用预留字段 ctime 接收 createtime 格式化的时间(Date-String)item.setCtime(dateFormat.format(item.getCreatetime()));item.setUtime(dateFormat.format(item.getUpdatetime()));});return list; } 程序执行结果如下从上述结果可以看出时间格式化没有任何问题以及到底我们预想的目的了。但细心的读者会发现为什么接口的返回字段咋变了呢之前的字段是 createtime 现在却是 ctime...这是因为使用 #SimpleDateFormat.format 方法之后它返回的是一个 String 类型的结果而我们之前的 createtime 和 updatetime 字段都是 Date 类型的因此它们是不能接收时间格式化得结果的。所以此时我们就需要在实体类 UserInfo 新增两个字符串类型的“时间”字段再将之前 Data 类型的时间字段进行隐藏最终实体类 UserInfo 的实现代码如下import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data;import java.util.Date;Data public class UserInfo {private int id;private String username;JsonIgnore // 输出结果时隐藏此字段private Date createtime;// 时间格式化后的字段private String ctime;JsonIgnore // 输出结果时隐藏此字段private Date updatetime;// 时间格式化后的字段private String utime; } 我们可以使用 JsonIgnore 注解将字段进行隐藏隐藏之后的执行结果如下3.DateTimeFormatter格式化JDK 8 之后我们可以使用 DateTimeFormatter 来替代 SimpleDateFormat因为 SimpleDateFormat 是非线程安全的而 DateTimeFormatter 是线程安全的所以如果是 JDK 8 以上的项目尽量使用 DateTimeFormatter 来进行时间格式化。DateTimeFormatter 格式化的代码和 SimpleDateFormat 类似具体实现如下RequestMapping(/list) public ListUserInfo getList() {// 定义时间格式化对象DateTimeFormatter dateFormat DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss);ListUserInfo list userMapper.getList();// 循环执行时间格式化list.forEach(item - {// 使用预留字段 ctime 接收 createtime 格式化的时间(Date-String)item.setCtime(dateFormat.format(item.getCreatetime()));item.setUtime(dateFormat.format(item.getUpdatetime()));});return list; } 执行结果如下所示DateTimeFormatter 和 SimpleDateFormat 在使用上的区别是 DateTimeFormatter 是用来格式化 JDK 8 提供的时间类型的如 LocalDateTime而 SimpleDateFormat 是用来格式化 Date 类型的所以我们需要对 UserInfoer 实体类做如下的修改import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data;import java.time.LocalDateTime;Data public class UserInfo {private int id;private String username;JsonIgnoreprivate LocalDateTime createtime;private String ctime;JsonIgnoreprivate LocalDateTime updatetime;private String utime; } 我们可以使用 LocalDateTime 来接收 MySQL 中的 datetime 类型。4.全局时间格式化以上两种后端格式化的实现都有一个致命的缺点它们在进行时间格式化的时候都需要对核心业务类做一定的修改这就相当为了解决一个问题又引入了一个新的问题那有没有简单一点、优雅一点的解决方案呢答案是有的。我们可以不改任何代码只需要在配置文件中设置一下就可以实现时间格式化的功能了。首先我们找到 Spring Boot 的配置文件 application.properties或 application.yml只需要在 application.properties 配置文件中添加以下两行配置# 格式化全局时间字段 spring.jackson.date-formatyyyy-MM-dd HH:mm:ss # 指定时间区域类型 spring.jackson.time-zoneGMT8 这样设置之后我们将原始的 UserInfo 和 UserController 进行还原。UserInfo 实现代码如下import lombok.Data; import java.util.Date;Data public class UserInfo {private int id;private String username;private Date createtime;private Date updatetime; } UserController 实现代码RequestMapping(/list) public ListUserInfo getList() {return userMapper.getList(); } 然后我们运行程序看到的执行结果如下从以上结果和代码可以看出我们只需要在程序中简单配置一下就可以实现所有时间字段的格式化了。实现原理分析为什么在配置文件中设置一下就可以实现所有时间字段的格式化了呢# 格式化全局时间字段 spring.jackson.date-formatyyyy-MM-dd HH:mm:ss # 指定时间区域类型 spring.jackson.time-zoneGMT8 这是因为 Controller 在返回数据时会自动调用 Spring Boot 框架中内置的 JSON 框架 Jackson对返回的数据进行统一的 JSON 格式化处理在处理的过程中它会判断配置文件中是否设置了“spring.jackson.date-formatyyyy-MM-dd HH:mm:ss”如果设置了那么 Jackson 框架在对时间类型的字段输出时就会执行时间格式化的处理这样我们就通过配置来实现全局时间字段的格式化功能了。为什么要指定时间区域类型“spring.jackson.time-zoneGMT8”呢最现实的原因是如果我们不指定时间区域类型那么查询出来的时间就会比预期的时间少 8 个小时这因为我们中国所处的时间区域比世界时间少 8 个小时导致的而当我们设置了时区之后我们的时间查询才会和预期时间保持一致。GMT 是什么时间区域设置中的“GMT” 是什么意思Greenwich Mean Time (GMT) 格林尼治时间也叫做世界时间。格林尼治时间格林尼治是英国伦敦南郊原皇家格林尼治天文台所在地地球本初子午线的标界处世界计算时间和经度的起点。以其海事历史、作为本初子午线的标准点、以及格林尼治时间以其命名而闻名于世。这里地势险要风景秀丽兼具历史和地方风情也是伦敦在泰晤士河的东方门户。不光是天文学家使用格林尼治时间就是在新闻报刊上也经常出现这个名词。我们知道各地都有各地的地方时间。如果对国际上某一重大事情用地方时间来记录就会感到复杂不便而且将来日子一长容易搞错。因此天文学家就提出一个大家都能接受且又方便的记录方法那就是以格林尼治的地方时间为标准。以本初子午线的平子夜起算的平太阳时。又称格林尼治平时或格林尼治时间。各地的地方平时与世界时之差等于该地的地理经度。1960年以前曾作为基本时间计量系统被广泛应用。由于地球自转速率曾被认为是均匀的,因此在1960年以前,世界时被认为是一种均匀时。由于地球自转速度变化的影响它不是一种均匀的时间系统它与原子时或力学时都没有任何理论上的关系,只有通过观测才能对它们进行比较。后来世界时先后被历书时和原子时所取代但在日常生活、天文导航、大地测量和宇宙飞行等方面仍属必需同时世界时反映地球自转速率的变化是地球自转参数之一仍为天文学和地球物理学的基本资料。5.部分时间格式化某些场景下我们不需要对全局的时间都进行统一的处理这种情况我们可以使用注解的方式来实现部分时间字段的格式化。我们需要在实体类 UserInfo 中添加 JsonFormat 注解这样就可以实现时间的格式化功能了实现代码如下import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data;import java.util.Date;Data public class UserInfo {private int id;private String username;// 对 createtime 字段进行格式化处理JsonFormat(pattern yyyy-MM-dd hh:mm:ss, timezone GMT8)private Date createtime;private Date updatetime; } 修改完代码之后我们运行项目执行结果如下从上述结果可以看出使用注解的方式也可以实现时间的格式化。它的实现原理和第 4 种时间格式化的实现原理类似都是在返回数据之前对相应的字段进行时间格式化的处理。总结本文我们介绍了 5 种时间格式化的实现方法其中第 1 种为前端时间格式化的方法后 4 种为后端格式化的方法SimpleDateFormat 和 DateTimeFormatter 格式化的方法更适用普通的 Java 项目其中 SimpleDateFormat 是非线程安全的而 DateTimeFormatter 是线程安全的但它们都不是 Spring Boot 项目中最优的时间格式化方案。如果是 Spring Boot 的项目推荐使用第 4 种全局时间格式化或第 5 种局部时间格式化的方式这两种实现方式都无需修改核心业务代码只需要简单的配置一下就可以完成时间的格式化功能了。参考 鸣谢www.jianshu.com/p/49fb78bca621baike.baidu.com/item/世界时/692237 往期推荐 绝Java 中创建对象的 5 种方法SpringBoot 优雅的参数效验面霸篇MQ 的 5 大关键问题详解

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

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

相关文章

网站代做多少钱免费的wordpress主机

答:1、进入控制面板,选择“卸载或更改程序”。 2、选中“AutoCAD2006”图标。 3、右击选择“更改”。 4、进入“AutoCAD2006安装程序对话框”,选择“添加/删除功能”单选按钮,点击下一步。 5、在“程序文件”列表中,选…

各网站提交入口温州比较好的设计公司

人工智能技术的进步,在不断的革新我们的工作和生活,同时,拥有人工智能技术的语音智能客服机器人在销售行业的工作熟悉程度也越来越好,那语音智能客服机器人有什么优势?我们一起来看看。 1、ASR语音文本转换 客户可通过…

.net网站吃内存wordpress关联微信

今天因工作需要写了个小程序,用于在图片集中自动抽取需要的照片。该程序只是实现了基本功能,还有很多需要完善的地方,展示出来算是给自己鼓鼓气吧。该程序应用有一定特殊条件,因我选择的图片集是工业生产过程中自动拍摄生成的&…

旅游类网站建设的结论网站正在建设中 英语

1先找一套相同cpu的虚拟机下载rpm 2 如果新的虚拟机没有yum源就替换 修改yum源-CSDN博客 1.2使用wget下载yum源配置文件 (1)备份本地yum源配置文件 备份命令: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak(2)下载yum源配置文…

注册域名哪个网站好怎么在百度做原创视频网站

关注小夕并星标,解锁自然语言处理搜索、推荐与算法岗求职秘籍文 | 苏剑林(追一科技,人称苏神)美 | 人美心细小谨思密达前言这篇文章简单介绍一个叫做AdaX的优化器,来自《AdaX: Adaptive Gradient Descent with Exponen…

淘客网站 wordpresserp系统的优点

2月21日,全球多媒体巨头Adobe在官网宣布,推出生成式AI助手AI Assistant,并将其集成在Reader 和Acrobat 两款PDF阅读器中。 据悉,AI Assistant的功能与ChatGPT相似,可以基于PDF文档提供摘要、核心见解、基于文档内容&a…

网站建设的难点南宁比较有好的网站制作公司

用Dos的copy命令实现: copy a.jsb.jsc.js abc.js /b 将 a.js b.js c.js 合并为一个 abc.js,最后的 /b 表示文件为二进位文件,copy 命令的其它参数可以在 cmd 里输入 copy /? 学习 举例:如果想要合并多个js文件到某个目录下&#…

站长工具seo优化IT科技资讯新闻类织梦网站模板

为什么要在Redis存数据 Redis 用来实现应用和数据库之间读操作的缓存层,主要目的是减少数据 库 IO,还可以提升数据的 IO 性能。 因为Redis基于内存, 查询效率比MySQL快很多, 所以有限查询Redis中的数据,如果Redis没有就查询数据库然后同步到Redis 出…

汕头建立网页公司淘宝客seo推广教程

题意 题目链接 Sol 直接在线段树上二分 当左右儿子中的一个不是\(x\)的倍数就继续递归 由于最多递归到一个叶子节点,所以复杂度是对的 开始时在纠结如果一段区间全是\(x\)的两倍是不是需要特判,实际上是不需要的。 可以这么想,如果能成功的话…

做微信小程序是不是不用做网站网站文章优化怎么做

美赛思路已更新,关注后可以获取更多思路。并且领取资料 C题思路 首先,我们要理解势头是什么。简单来说,势头是一方在比赛中因一系列事件而获得的动力或优势。在网球中,这可能意味着连续赢得几个球,或是在比赛的某个关…

软件网站技术开发公司标准网站建设费用

JAVA中Object类的toString()方法,objecttostringtoStringpublic String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。Objec…

网站开发图片存哪里互联网保险销售

参考:https://www.runoob.com/w3cnote/c-assert.html 目录作用总结与注意事项Demo作用 assert 是个宏,并且作用并非"报错"。 assert() 的用法像是一种"契约式编程",程序满足我的假设条件,才能正常良好的运作…

PHP网站开发简单实例施工企业资质类别

下面的代码,照着复制就能跑起来 今天看了下Spring的Configuration,即java类配置bean,(这个spring3的新功能,虽然现在已经spring5了,但是这种配置bean的方式也是比较火的) 做了如下测试,发现一个…

杭州网站建设公司联系方式it外包公司联系电话

首先解释一下什么是Session,如果你不知道的话。当一个访问者来到你的网站的时候一个Session就开始了,当他离开的时候Session 就结束了。本质是来说,cookie是和浏览器有关系,而Session变量就可以存一些资源变量在服务器上面。PHP4用文件存储Session变量, 但理论上可以用数据库或…

企业站群cms免费服务器空间申请

1.在项目中,服务之间的调用是怎么实现的? 1.1基于RestTemplate和LoadBalanced注解: RestTemplate是Spring提供的用于访问RESTful服务的客户端。添加LoadBalanced注解后,RestTemplate会成为一个负载均衡的HTTP客户端,它…

wordpress 自助建站建设哪里有

本文主要简单讲述了如何使用php实现简单的用户登陆以及登陆验证效果。1、首先实现通过Session实现用户的登录那么什么是session呢?session被译为会话,它主要是为了在一定访问期间在不同页面之间间传输数据,用来解决http协议无状态。session在…

乌海建设局网站php网站后台模板

1.关于XSS(跨站脚本攻击)和CSRF(跨站请求伪造)的知识,xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除…

个人网站建设方案书怎么写婚纱网站策划书模板

接口签名生成方式 前言 当某个系统对外部系统提供接口访问时,为提高接口请求安全性,往往会在接口访问时添加签名,当外部系统访问本系统签名验证成功时才能正常返回数据,一般接口提供方会与外部系统提前约定好,不同外…

企业搭建网站哪家好dz门户网站模板下载

在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据&am…