当前位置: 首页 > news >正文

Java 中的日期时间总结

前言

大家好,我是 god23bin,在日常开发中,我们经常需要处理日期和时间,日期和时间可以说是一定会用到的,现在总结下 Java 中日期与时间的基本概念与一些常用的用法。

基本概念

  1. 日期(年月日,某一天):2023-01-05

  2. 时间(时分秒,可具体到某一天某一刻):18:00:002023-01-05 18:00:00

  3. 本地时间:平常我们说的,比如现在说明天早上七点钟,这里说的时间就是本地时间,在咱们中国,指的就是北京时间。但是在明天早上七点钟,对于其他国家的人来说,他们的本地时间就不一样了。

  4. 时区:由于世界各个国家与地区经度不同,本地时间也有所不同,所以划分了不同的时区,目前划分的是24个时区,咱们就位于东八区。目前需要了解的时区的表达方式知道两种就可以了。

    • GMT 或者 UTC 加时区偏移量表示,例如:GMT+08:00 或者 UTC+08:00 表示东八区
    • 洲/城市 表示,例如,Asia/Shanghai,表示上海所在地的时区。不过这里的城市名称不是任意的城市,而是由国际标准组织规定的城市。

Java 8 之前日期时间相关的类

在 Java 8 之前,主要使用的日期和时间 API 包括:

  1. java.util.Date
  2. java.util.Calendar
  3. java.text.SimpleDateFormat

1. Date

Date 是 Java 中表示日期和时间的类,一般用于获取当前的日期和时间,比如更新数据库中记录的时候,需要更新某个日期时间,那么就直接 new Date(),这样实例化的 Date 对象就是当前的这一时刻。

Date date = new Date();
// 可以打印当前日期时间
System.out.println(date.toString()); // 控制台输出 Thu Jan 05 18:41:11 CST 2023

2. SimpleDateFormat

SimpleDateFormat 是 Java 中用于格式化日期和时间的类,此处所谓格式化,就是字面意思,统一格式,即它允许你将日期和时间按照指定的格式转换成字符串,也可以将对应格式的字符串解析成日期和时间对象。

主要用法就是:

  1. 格式化日期和时间
  2. 解析字符串格式的日期和时间

format 方法-格式化日期时间,从 Date 到 String

使用 public final String format(Date date) 方法格式化日期时间。上面输出的格式,不是我们想要的,所以需要进行日期时间的格式化。

最常用的一个格式化的模型是:yyyy-MM-dd HH:mm:ss

其中,yyyy 是年份,MM 是月份,dd 是天数,后面同理,HH:mm:ss 是时、分、秒。

// 常用的格式化
String pattern1 = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(pattern1);
System.out.println(sdf1.format(date3)); // 输出 2023-01-05 18:19:50String pattern2 = "yyyy年MM月dd日 HH时mm分ss秒";
SimpleDateFormat sdf2 = new SimpleDateFormat(pattern2);
System.out.println(sdf2.format(date3)); // 输出 2023年01月05日 18时19分50秒

parse 方法-字符串日期时间解析,从 String 到 Date

使用 public Date parse(String source) 方法将 String 转成 Date

String input = "2023-01-01 00:00:01";
String pattern1 = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf3 = new SimpleDateFormat(pattern1);
try {// 将 String 类型的日期解析成 Date 类型的日期Date parsed = sdf3.parse(input);System.out.println(parsed);
} catch (ParseException e) {e.printStackTrace();
}

3. Calendar

Calendar 是 Java 中用于处理日期和时间的抽象基类。它提供了一个类似于日历的机制,允许我们进行日期和时间的计算、格式化和解析。

简而言之,这个类主要用于日期的计算,比如你想得到此刻前一天的日期。

Calendar 是一个抽象类,不能直接实例化。所以我们需要使用 getInstance() 方法获取 Calendar 的实例:

Calendar calendar = Calendar.getInstance();

当我们有一个 Calendar 对象后,就可以表示日期和时间了,通过设置各个字段,如年、月、日、时、分、秒等来表示一个具体的日期和时间。

calendar.set(Calendar.YEAR, 2023);          // 设置年份为2023
calendar.set(Calendar.MONTH, Calendar.MAY); // 设置月份为5(从0开始,5表示六月)
calendar.set(Calendar.DAY_OF_MONTH, 16);    // 设置日期为16号

日期和时间的计算

Calendar允许你进行日期和时间的加减操作,例如:

calendar.add(Calendar.DAY_OF_MONTH, 7); // 增加7天

这将在当前日期的基础上增加 7 天。

下表列出了 Java 中 Calendar 类常用的方法及其描述:

方法描述
get(int field)返回给定字段的值。例如,calendar.get(Calendar.MONTH) 返回月份。
set(int field, int value)设置给定字段的值。例如,calendar.set(Calendar.YEAR, 2023) 设置年份为2023。
add(int field, int amount)增加或减少给定字段的值。例如,calendar.add(Calendar.DAY_OF_MONTH, 1) 将日期增加一天。
getTime()返回表示此Calendar时间点的Date对象。
setTime(Date date)使用指定的Date对象设置此Calendar的时间点。
getTimeInMillis()返回以毫秒为单位表示此Calendar时间点的时间值。
setTimeInMillis(long millis)使用指定的时间值设置此Calendar的时间点。
getTimeZone()返回此Calendar使用的时区。
setTimeZone(TimeZone zone)设置此Calendar的时区。
isLenient()返回Calendar是否宽松,即是否允许非法日期。
setLenient(boolean lenient)设置Calendar是否宽松。
getActualMaximum(int field)返回给定字段的最大允许值。例如,calendar.getActualMaximum(Calendar.DAY_OF_MONTH) 返回当前月份的最大天数。

Java 8 引入的新的日期时间相关的类

当 Java 8 引入 java.time 包时,它引入了一些新的日期和时间 API,这些 API 旨在提供更强大、更易于使用、线程安全且具有本地化支持的日期和时间处理方式。

以下是这些 API 的概述:

  1. LocalDate:表示日期,但不包含时间和时区信息。它提供了各种方法来处理日期,如创建、解析、格式化、计算日期差等。
  2. LocalTime:表示时间,但不包含日期和时区信息。它用于处理时间,包括小时、分钟、秒和毫秒。
  3. LocalDateTime:它是 LocalDateLocalTime 的组合,表示日期和时间,但仍不包含时区信息。它是处理日期和时间的主要类之一。
  4. ZonedDateTime:表示带有时区信息的日期和时间。它是 LocalDateTime 的扩展,可以处理时区的转换和计算。
  5. Duration:表示时间段的持续时间,以秒和纳秒为单位。它用于测量两个时间点之间的时间差。
  6. Period:表示日期之间的时间段,以年、月和日为单位。它用于测量两个日期之间的时间差。
  7. DateTimeFormatter:主要用于将日期和时间格式化为字符串,或将字符串解析为日期和时间。它提供了各种预定义的格式化方式,并支持自定义格式。

1. LocalDate

直接通过调用其相关静态方法就可以进行相关的日期处理:

LocalDate now = LocalDate.now(); 			// 获取当前日期
LocalDate date = LocalDate.of(2023, 5, 15); // 创建指定日期
LocalDate parsedDate = LocalDate.parse("2023-05-15"); // 解析日期
int year = date.getYear(); 			// 获取年份
int month = date.getMonthValue(); 	// 获取月份
int day = date.getDayOfMonth(); 	// 获取日期

2. LocalTime

同理,也是类似的,对时间进行处理:

LocalTime time = LocalTime.now(); 					// 获取当前时间
LocalTime specificTime = LocalTime.of(14, 30, 0); 	// 创建指定时间
LocalTime parsedTime = LocalTime.parse("14:30:00"); // 解析时间
int hour = time.getHour(); 		// 获取小时
int minute = time.getMinute(); 	// 获取分钟
int second = time.getSecond(); 	// 获取秒

3. LocalDateTime

处理日期和时间:

LocalDateTime dateTime = LocalDateTime.now(); 								// 获取当前日期和时间
LocalDateTime specificDateTime = LocalDateTime.of(2023, 5, 15, 14, 30); 	// 创建指定日期和时间
LocalDateTime parsedDateTime = LocalDateTime.parse("2023-05-15T14:30:00"); 	// 解析日期和时间,字母'T'用于分隔日期部分和时间部分。它的作用是明确表示日期和时间的分界线。

4. ZonedDateTime

处理带有时区的日期和时间,我们可以使用 ZoneId.of("时区标识") 来获取相应的时区对象:

ZoneId zone = ZoneId.of("America/New_York"); 			// 创建时区
ZonedDateTime zonedDateTime = ZonedDateTime.now(zone); 	// 获取带有时区的当前日期和时间

带有时区信息的日期时间通常采用以下的格式:

2023-09-08T11:30:00+08:00[Asia/Shanghai]

这个例子表示的是 2023年9月8日11点30分,位于亚洲/上海时区,时区偏移量为+08:00,也就是东八区。在这种表示中,日期时间后面跟着时区信息,方括号内的部分为时区标识。

下面是一些常见的时区标识及其对应的时区:

时区标识时区
Asia/Shanghai中国上海时区
America/New_York美国纽约时区
Europe/London英国伦敦时区
America/Los_Angeles美国洛杉矶时区
Asia/Tokyo日本东京时区
Europe/Paris法国巴黎时区
Australia/Sydney澳大利亚悉尼时区
Africa/Cairo埃及开罗时区
Pacific/Honolulu美国檀香山时区
Asia/Dubai阿拉伯迪拜时区

5. Duration

测量时间段的持续时间:

LocalDateTime start = LocalDateTime.of(2023, 9, 8, 11, 0);
LocalDateTime end = LocalDateTime.of(2023, 9, 8, 11, 30);
Duration duration = Duration.between(start, end); 	// 计算两个时间点之间的时间差
long minutes = duration.toMinutes(); 				// 获取分钟数

6. Period

测量日期之间的时间段:

LocalDate startDate = LocalDate.of(2023, 9, 1);
LocalDate endDate = LocalDate.of(2023, 9, 8);
Period period = Period.between(startDate, endDate); // 计算两个日期之间的时间差
int days = period.getDays(); 						// 获取天数

7. DateTimeFormatter

格式化日期和时间:

LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = dateTime.format(formatter); // 格式化为字符串
LocalDateTime parsedDateTime = LocalDateTime.parse("2023-05-15 14:30:00", formatter); // 解析字符串为日期和时间

新日期时间 API 中常用的方法

以下是 Java 8 中新日期时间 API 中常用的方法,用于处理日期和时间的创建、获取字段值、计算差异、格式化和解析等:

方法描述
LocalDate.now()获取当前日期。
LocalTime.now()获取当前时间。
LocalDateTime.now()获取当前日期和时间。
LocalDate.of(int year, int month, int day)创建指定日期。
LocalTime.of(int hour, int minute)创建指定时间。
LocalDateTime.of(int year, int month, int day, int hour, int minute)创建指定日期和时间。
LocalDate.parse(CharSequence text)解析日期字符串。
LocalTime.parse(CharSequence text)解析时间字符串。
LocalDateTime.parse(CharSequence text)解析日期时间字符串。
LocalDate.getYear()获取年份。
LocalDate.getMonthValue()获取月份。
LocalDate.getDayOfMonth()获取日期。
LocalTime.getHour()获取小时。
LocalTime.getMinute()获取分钟。
LocalTime.getSecond()获取秒。
LocalDateTime.plus(Duration amount)增加持续时间。
LocalDateTime.minus(Duration amount)减少持续时间。
Duration.between(Temporal startInclusive, Temporal endExclusive)计算两个时间点之间的时间差。
Period.between(LocalDate startDateInclusive, LocalDate endDateExclusive)计算两个日期之间的时间差。
DateTimeFormatter.ofPattern(String pattern)创建日期时间格式化器。
Temporal.format(DateTimeFormatter formatter)格式化为字符串。
TemporalAccessor.parse(CharSequence text, DateTimeFormatter formatter)解析字符串为日期或时间。
ZoneId.of(String zoneId)创建时区。
ZonedDateTime.now(ZoneId zone)获取带有时区的当前日期和时间。

开发中的用到的两个注解

一般前端传递日期时间字符串,我们后端进行接收,就需要将日期时间字符串转成我们需要的 Date 类型的日期时间,即 String 到 Date 的转化

当我们从数据库中查出日期时间,是 Date 类型的日期时间,返回给前端就提供 JSON 数据,就需要讲 Date 类型的日期时间转成 字符串类型的日期时间,即 Date 到 String 的转化

有两个注解可以解决这两件事:Spring 提供的 @DateTimeFormat 和 Jackson 提供的 @JsonFormat

Jackson 相关依赖:

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.13.4</version>
</dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.13.4</version>
</dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.4.2</version>
</dependency>

说明:

  • @DateTimeFormat将 String 转成 Date,主要用于处理前端传递的 String 类型的日期时间转成 Java 中的 Date 类型的日期时间对象
  • @JsonFormat将 Date 转成 String,主要用于处理后端从数据库中查出的 Date 类型的日期时间,它可以用于标记 Java 类的属性,以指定日期在 JSON 中的格式。

日常用在各种域对象的日期属性上,比如 DTO、VO、PO。

public class A {@JsonFormat(pattern = "yyyy年MM月", timezone = "GMT+8")@DateTimeFormat(pattern = "yyyy年MM月")private Date startTime;@JsonFormat(pattern = "yyyy年MM月", timezone = "GMT+8")@DateTimeFormat(pattern = "yyyy年MM月")private Date endTime;}public class B {@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")@DateTimeFormat(pattern = "yyyy-MM-dd")private Date startTime;@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")@DateTimeFormat(pattern = "yyyy-MM-dd")private Date endTime;}

最后的最后

希望各位屏幕前的靓仔靓女们给个三连!你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!

咱们下期再见!

相关文章:

Java 中的日期时间总结

前言 大家好&#xff0c;我是 god23bin&#xff0c;在日常开发中&#xff0c;我们经常需要处理日期和时间&#xff0c;日期和时间可以说是一定会用到的&#xff0c;现在总结下 Java 中日期与时间的基本概念与一些常用的用法。 基本概念 日期&#xff08;年月日&#xff0c;某…...

创建10个线程并发执行(STL/Windows/Linux)

C并发编程入门 目录 STL 写法 #include <thread> #include <iostream> using namespace std;void thread_fun(int arg) {cout << "one STL thread " << arg << " !" << endl; }int main(void) {int thread_count 1…...

三、创建各个展示模块组件

简介 在文件 components 中创建轮播模块组件,引入App.vue展示。欢迎访问个人的简历网站预览效果 本章涉及修改与新增的文件:First.vue、Second.vue、Third.vue、Fourth.vue、Fifth.vue、App.vue、vite-env.d.ts、assets 一、修改vite-env.d.ts文件 /// <reference type…...

推荐一款程序员截图神器!

快来看一下程序员必备的一款截图工具 今天就来和大家说一下作为程序员必备截图神器&#xff0c;几乎每一个程序员都会设置开机自启&#xff0c;因为这个截图功能太太太好用了&#xff01;&#xff01;&#xff01;只要你在键盘上按下F1就可以轻松截取整个屏幕&#xff0c;然后…...

无涯教程-JavaScript - IMCSC函数

描述 IMCSC函数以x yi或x yj文本格式返回复数的余割。 复数的余割定义为正弦的倒数。即 余割(z) 1 /正弦(z) 语法 IMCSC (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you want the cosecant.Required Notes Excel中的复数只是简单…...

Ubuntu22.04 LTS 显卡相关命令

第一部分查看驱显卡信息 一、查看显卡型号 # -i表示不区分大小写 lspci | grep -i nvidia # 必须安装好nvidia驱动 nvidia-smi -L 二、查看显卡驱动版本 cat /proc/driver/nvidia/version 三、查看CUDA、cuDNN版本 # 或者 nvcc -V&#xff08;两个显示的版本一致&#xf…...

《TCP/IP网络编程》阅读笔记--基于 TCP 的半关闭

目录 1--基于TCP的半关闭 1-1--TCP单方面完全断开的问题 1-2--shutdown()函数 1-3--半关闭的必要性 2--基于半关闭的文件传输程序 1--基于TCP的半关闭 1-1--TCP单方面完全断开的问题 Linux 系统中的 close 函数会将 TCP Socket 的连接完全断开&#xff0c;这意味着不能收…...

Rust的模块化

Rust的模块化要从Rust的入口文件谈起。 Rust的程序的入口文件有两个 如果程序类型是可执行应用&#xff0c;入口文件是main.rs&#xff1b;如果程序类型是库&#xff0c;入口文件是lib.rs&#xff1b; 入口文件中&#xff0c;必须声明本地模块&#xff0c;否则编译器在编译过…...

vmware设置桥接模式后ip设置

网络连接方式设置 找到虚拟机里机器的网络设置 左边是宿主机&#xff0c;右边是虚拟机&#xff0c;按照这个设置就可以上网了(IP指定一个没有占用的值&#xff0c;子网掩码和网关设置成一样的)就可以联网了。 over~~...

算法通关村第十七关:白银挑战-贪心高频问题

白银挑战-贪心高频问题 1. 区间问题 所有的区间问题&#xff0c;参考下面这张图 1.1 判断区间是否重叠 LeetCode252 https://leetcode.cn/problems/meeting-rooms/ 思路分析 因为一个人在同一时刻只能参加一个会议&#xff0c;因此题目的本质是判断是否存在重叠区间 将区…...

目标检测评估指标mAP:从Precision,Recall,到AP50-95

1. TP, FP, FN, TN True Positive 满足以下三个条件被看做是TP 1. 置信度大于阈值&#xff08;类别有阈值&#xff0c;IoU判断这个bouding box是否合适也有阈值&#xff09; 2. 预测类型与标签类型相匹配&#xff08;类别预测对了&#xff09; 3. 预测的Bouding Box和Ground …...

七大排序算法

目录 直接插入排序 希尔排序 直接选择排序 堆排序 冒泡排序 快速排序 快速排序优化 非递归实现快速排序 归并排序 非递归的归并排序 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作. 常见的排序算法有插入排序(直接插入…...

GitHub two-factor authentication

1. 介绍 登录 GitHub 官网&#xff0c;会提示要开启双因子认证。 但推荐的 APP 都是国外了&#xff0c;国内用不了。 可以使用 “腾讯身份验证器” 微信小程序。 2. 操作 开启双因子认证&#xff1a; 打开 “腾讯身份验证器” 微信小程序&#xff0c;扫描 GitHub 那个二维…...

un-app-手机号授权登录-授权框弹不出情况

前言 手机号授权是获取用户信息api停用之后&#xff0c;经常使用的api。但是此api也是有很多坑 手机号授权会出现调用不起来的情况&#xff0c;这是因为小程序后台没有进行微信认证导致的 手机号授权调用不起来-没有微信认证 来到小程序后台-设置-基本设置-下拉找到微信认证…...

手写Spring:第14章-自动扫描Bean对象注册

文章目录 一、目标&#xff1a;自动扫描Bean对象注册二、设计&#xff1a;自动扫描Bean对象注册三、实现&#xff1a;自动扫描Bean对象注册3.0 引入依赖3.1 工程结构3.2 Bean生命周期中自动加载包扫描注册Bean对象和设置占位符属性类图3.3 主力占位符配置3.4 定义拦截注解3.4.1…...

redux中间件的简单讲解

redux中间件 中间件的作用&#xff1a; 就是在 源数据 到 目标数据 中间做各种处理&#xff0c;有利于程序的可拓展性&#xff0c;通常情况下&#xff0c;一个中间件就是一个函数&#xff0c;且一个中间件最好只做一件事情 数据源 --------> 中间件 --------> 中间件 -…...

嵌入式开发-绪论

目录 一.什么是嵌入式 1.1硬件系统 1.2软件系统 二.嵌入式应用场景 2.1消费电子 2.1.1智能家居 2.1.2影音 2.1.3家用电器 2.1.4玩具游戏机 2.2通信领域 2.2.1对讲机 2.2.2手机 2.2.3卫星 2.2.4雷达 2.3控制领域 2.3.1机器人 2.3.2采集器PLC 2.4金融 2.4.1POS…...

大数据知识合集之预处理方法

数据预处理方法主要有&#xff1a; 数据清洗、数据集成、数据规约和数据变换。 1、数据清洗 数据清洗(data cleaning) &#xff1a;是通过填补缺失值、光滑噪声数据&#xff0c;平滑或删除离群点&#xff0c;纠正数据的不一致来达到清洗的目的。 缺失值处理 实际开发获取信…...

mysql(九)mysql主从复制

目录 前言概述提出问题主从复制的用途工作流程 主从复制的配置创建复制账号配置主库和从库启动主从复制从另一个服务器开始主从复制主从复制时推荐的配置sync_binloginnodb_flush_logs_at_trx_commitinnodb_support_xa1innodb_safe_binlog 主从复制的原理基于语句复制优点&…...

nodejs采集淘宝、天猫网商品详情数据以及解决_m_h5_tk令牌及sign签名验证(2023-09-09)

一、淘宝、天猫sign加密算法 淘宝、天猫对于h5的访问采用了和APP客户端不同的方式&#xff0c;由于在h5的js代码中保存appsercret具有较高的风险&#xff0c;mtop采用了随机分配令牌的方式&#xff0c;为每个访问端分配一个token&#xff0c;保存在用户的cookie中&#xff0c;通…...

虚拟机上部署K8S集群

虚拟机上部署K8S集群 安装VM Ware安装Docker安装K8S集群安装kubeadm使用kubeadm引导集群 安装VM Ware 参考&#xff1a;http://www.taodudu.cc/news/show-2034573.html?actiononClick 安装Docker 参考&#xff1a;https://www.yuque.com/leifengyang/oncloud/mbvigg#2ASxH …...

设计模式 - 责任链

一、前言 ​ 相信大家平时或多或少都间接接触过责任链设计模式&#xff0c;只是可能有些同学自己不知道此处用的是该设计模式&#xff0c;比如说 Java Web 中的 Filter 过滤器&#xff0c;就是非常经典的责任链设计模式的例子。 那么什么是责任链设计模式呢&#xff1f; ​ …...

【小沐学Unity3d】3ds Max 骨骼动画制作(CAT、Character Studio、Biped、骨骼对象)

文章目录 1、简介2、 CAT2.1 加载 CATRig 预设库2.2 从头开始创建 CATRig 3、character studio3.1 基本描述3.2 Biped3.3 Physique 4、骨骼系统4.1 创建方法4.2 简单示例 结语 1、简介 官网地址&#xff1a; https://help.autodesk.com/view/3DSMAX/2018/CHS https://help.aut…...

CUDA说明和安装[window]

文章目录 1、查看版本信息查看GPU查看cuda版本其他方法 2区分 了解cudaCUDA ToolkitNVCCcuDNN 3/ 安装过程4/版本的问题CUDA Toolkit和 显卡驱动 的版本对应CUDA / CUDA Toolkit和cuDNN的版本对应 5/关于CUDA和Cudnn**5.1 CUDA的命名规则****5.2 如何查看自己所安装的CUDA的版本…...

sqlserver2012性能优化配置:设置性能相关的服务器参数

前言 sqlserver2012 长时间运行的话会将服务器的内存占满 解决办法 通过界面设置 下图中设置最大服务器内存 通过执行脚本设置 需要先开发开启高级选项配置才能设置成功 设置完成之后将高级选择配置关闭&#xff0c;还原成跟之前一样 --可以配置高级选项 EXEC sp_conf…...

介绍 dubbo-go 并在Mac上安装,完成一次自己定义的接口RPC调用

目录 RPC 远程调用的说明作用&#xff1a;像调用本地方法一样调用远程方法和直接HTTP调用的区别&#xff1a;调用模型图示&#xff1a; Dubbo 框架说明Dubbo Go 介绍应用 Dubbo Go环境安装&#xff08;Mac 系统&#xff09;安装 Go语言环境安装 序列化工具protoc安装 dubbogo-c…...

目标检测数据集:摄像头成像吸烟检测数据集(自己标注)

1.专栏介绍 ✨✨✨✨✨✨目标检测数据集✨✨✨✨✨✨ 本专栏提供各种场景的数据集,主要聚焦:工业缺陷检测数据集、小目标数据集、遥感数据集、红外小目标数据集,该专栏的数据集会在多个专栏进行验证,在多个数据集进行验证mAP涨点明显,尤其是小目标、遮挡物精度提升明显的…...

Unity的UI管理器

1、代码 public class UIManager {private static UIManager instance new UIManager();public static UIManager Instance > instance;//存储显示着的面板脚本&#xff08;不是面板Gameobject&#xff09;&#xff0c;每显示一个面板就存入字典//隐藏的时候获取字典中对…...

Mp4文件提取详细H.264和MP3文件

文章目录 Mp4文件提取为H.264和MP3文件**提取视频为H.264&#xff1a;****提取音频为MP3&#xff1a;** 点赞收藏加关注&#xff0c;追求技术不迷路&#xff01;&#xff01;&#xff01;欢迎评论区互动。 Mp4文件提取为H.264和MP3文件 要将视频分开为H.264&#xff08;视频编…...

Qt应用程序连接达梦数据库-飞腾PC麒麟V10

目录 前言1 安装ODBC1.1 下载unixODBC源码1.2 编译安装1.4 测试 2 编译QODBC2.1 修改 qsqldriverbase.pri 文件2.2 修改 odbc.pro 文件2.3 编译并安装QODBC 3 Qt应用程序连接达梦数据库测试4 优化ODBC配置&#xff0c;方便程序部署4.1 修改pro文件&#xff0c;增加DESTDIR 变量…...