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

Java 日期解析与格式化:从标准格式到自然语言解析

使用 Java 搭配 Apache Commons Lang3 和 Natty 库,实现灵活高效的日期解析与格式化。


一、背景

将不同格式的日期统一成一个格式。日期格式可能有以下几种类型:

  • 标准格式:2024-02-2814/05/20222002年5月6日
  • 非英文月份缩写:02 NIS 201826 AGO 2018(西班牙语)
  • 自然语言:next Mondaytwo days ago

二、依赖介绍

使用的版本是 jdk8。使用以下两个日期解析库:

1. Apache Commons Lang3

Apache Commons Lang3 提供了丰富的工具类,能够严格地解析各种标准日期格式。

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version>
</dependency>

2. Natty

Natty 是一个专门用于解析自然语言日期的 Java 库,支持英文描述的各种日期表达方式。

<dependency><groupId>com.joestelmach</groupId><artifactId>natty</artifactId><version>0.13</version>
</dependency>

三、核心实现代码

定义一个工具类,提供统一的日期解析方法:

完整代码示例:

import org.apache.commons.lang3.time.DateUtils;
import com.joestelmach.natty.Parser;
import org.apache.log4j.Level;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;/**** @title* @author shijiangyong* @date 2025/5/14 14:18**/
public class SmartDateParser {// 允许解析的日期格式private static final String[] DATE_PATTERNS = {"yyyy-MM-dd", "yyyy/M/d", "dd/MM/yyyy", "yyyy年M月d日","dd MMM yyyy", "MMM dd yyyy", "dd MM yyyy","yyyyMMdd", "yyyy.MM.dd", "yyyy年MM月dd日", "d MMM yyyy","EEE, dd MMM yyyy"};// 处理非标准月份缩写(主要针对西班牙语、法语等)private static final Map<String, String> MONTH_CORRECTIONS = new HashMap<>();static {MONTH_CORRECTIONS.put("NIS", "APR");  // 可能是 AprilMONTH_CORRECTIONS.put("ABR", "APR");  // 西班牙语 AprilMONTH_CORRECTIONS.put("AGO", "AUG");  // 西班牙语 August}/*** 解析日期并转换为 yyyy-M-d 格式*/public static String parseDate(String input) {if (input == null || input.trim().isEmpty()) {return "Invalid Date";}input = input.trim().replaceAll("[,,]", "");// 修正月份缩写for (Map.Entry<String, String> entry : MONTH_CORRECTIONS.entrySet()) {if (input.contains(entry.getKey())) {input = input.toUpperCase().replace(entry.getKey(), entry.getValue());}}// 1. 明确格式优先处理for (String pattern : DATE_PATTERNS) {try {SimpleDateFormat sdf = new SimpleDateFormat(pattern, Locale.ENGLISH);// 严格校验日期sdf.setLenient(false);Date date = sdf.parse(input);return formatToStandard(date);} catch (ParseException ignored) {}}// 1. 使用 Apache Commons Lang3 解析try {Date date = DateUtils.parseDateStrictly(input, Locale.ENGLISH, DATE_PATTERNS);return formatToStandard(date);} catch (ParseException ignored) {}// 2. 使用 Natty 解析 (适用于 `next Monday`, `19 AUG 2019`)try {Parser parser = new Parser();List<com.joestelmach.natty.DateGroup> groups = parser.parse(input);if (!groups.isEmpty()) {List<Date> dates = groups.get(0).getDates();if (!dates.isEmpty()) {return formatToStandard(dates.get(0));}}} catch (Exception ignored) {}return "Unrecognized: " + input;}/*** 统一转换日期为 yyyy-MM-dd 格式*/private static String formatToStandard(Date date) {Calendar cal = Calendar.getInstance();cal.setTime(date);int year = cal.get(Calendar.YEAR);int month = cal.get(Calendar.MONTH) + 1;int day = cal.get(Calendar.DAY_OF_MONTH);return String.format("%04d-%02d-%02d", year, month, day);}public static void main(String[] args) {org.apache.log4j.Logger.getRootLogger().setLevel(Level.ERROR);List<String> testDates = Arrays.asList("02 NIS 2018", "2028-4-219", "19 AUG 2019", "2019-8-19","2002年5月6日", "2005/02/03", "03 SEP 1985", "14/05/2022","20 FEB 1991", "26 AGO 2018", "08 ABR 1975", "01 09 1988","next Monday", "yesterday", "two days ago", "2024.02.28","Wed, 19 Aug 2019");for (String dateStr : testDates) {System.out.println("输入: " + dateStr + " → 解析: " + parseDate(dateStr));}}
}

解析结果:

输入: 02 NIS 2018 → 解析: 2018-04-02
输入: 2028-4-219 → 解析: 2028-04-21
输入: 19 AUG 2019 → 解析: 2019-08-19
输入: 2019-8-19 → 解析: 2019-08-19
输入: 2002年5月6日 → 解析: 2002-05-06
输入: 2005/02/03 → 解析: 2005-02-03
输入: 03 SEP 1985 → 解析: 1985-09-03
输入: 14/05/2022 → 解析: 2022-05-14
输入: 20 FEB 1991 → 解析: 1991-02-20
输入: 26 AGO 2018 → 解析: 2018-08-26
输入: 08 ABR 1975 → 解析: 1975-04-08
输入: 01 09 1988 → 解析: 1988-09-01
输入: next Monday → 解析: 2025-05-19
输入: yesterday → 解析: 2025-05-13
输入: two days ago → 解析: 2025-05-12
输入: 2024.02.28 → 解析: 2024-02-28
输入: Wed, 19 Aug 2019 → 解析: 2019-08-19

要求的日期格式都正确解析了。

相关文章:

Java 日期解析与格式化:从标准格式到自然语言解析

使用 Java 搭配 Apache Commons Lang3 和 Natty 库&#xff0c;实现灵活高效的日期解析与格式化。 一、背景 将不同格式的日期统一成一个格式。日期格式可能有以下几种类型&#xff1a; 标准格式&#xff1a;2024-02-28、14/05/2022、2002年5月6日非英文月份缩写&#xff1a;…...

【windows server脚本每天从网络盘复制到本地】

windows server脚本每天从网络盘复制到本地 调试模板 echo off :: 显示详细操作 echo echo 执行批处理文件&#xff1a;文件复制任务 echo :: 配置参数 set sourcePath\\network_drive\shared_folder :: 网络盘路径 set destinationPathC:\LocalBackup :: 本地保…...

GraphPad Prism简介、安装与工作界面

GraphPad Prism图表可视化与统计数据分析&#xff08;视频教学版&#xff09; - 商品搜索 - 京东 1.1 GraphPad Prism简介 GraphPad Prism 将科学绘图、综合曲线拟合&#xff08;包括非线性回归&#xff09;、易于理解的统计分析以及数据管理功能集于一身&#xff0c;帮助用…...

尚硅谷阳哥JVM

文章目录 第01章 JVM快速入门1、什么是JVM2、主流虚拟机有哪些&#xff1f;3、结构图3、执行引擎Execution Engine4、本地方法接口Native Interface5、Native Method Stack6、PC寄存器(程序计数器) 第02章 类加载器ClassLoader1、 类的加载过程2、类加载器的作用3、类加载器分类…...

spark的Standalone模式介绍

Apache Spark 的 Standalone 模式是其自带的集群管理模式&#xff0c;无需依赖外部资源管理器&#xff08;如 YARN 或 Mesos&#xff09;&#xff0c;可快速部署和运行 Spark 集群。以下是对 Standalone 模式的详细介绍&#xff1a; 1. 核心组件 Master 节点 集群的主控制器…...

自营交易考试中,怎么用“黄昏之星”形态做出漂亮反转单?

在自营交易考试中&#xff0c;如何在复杂的市场波动中抓住关键的趋势反转点&#xff0c;常常决定了一笔交易的成败。尤其是在规则清晰、交易明确的交易考试中&#xff0c;具备对K线形态的敏感度&#xff0c;是不少EagleTrader交易员在晋级过程中总结出的实用经验。今天&#xf…...

【算法】版本号排序

对版本号数组进行排序&#xff0c;比如&#xff1a;[0.1.2.3&#xff0c;1.2.1.0&#xff0c;4.2.1.0&#xff0c;0.1.2.0] 核心思路 将版本号拆分为数字数组&#xff0c;逐个比较每个子版本段。具体步骤&#xff1a; 拆分版本号&#xff1a;将每个版本字符串按 . 分割成数字数…...

wordcount程序

### 在 IntelliJ IDEA 中编写和运行 Spark WordCount 程序 要使用 IntelliJ IDEA 编写并运行 Spark 的 WordCount 程序&#xff0c;需按照以下流程逐步完成环境配置、代码编写以及任务提交。 --- #### 1. **安装与配置 IntelliJ IDEA** 确保已正确安装 IntelliJ IDEA&#x…...

MySQL Explain 中 Type 与 Extra 字段详解

引言 在数据库性能调优过程中&#xff0c;理解执行计划&#xff08;EXPLAIN&#xff09;的输出信息至关重要。MySQL 的 EXPLAIN 命令能够帮助开发者分析查询的执行路径和效率&#xff0c;其中 Type 和 Extra 字段提供了关键的执行细节。Type 字段表示访问类型&#xff0c;反映…...

代码随想录算法训练营第60期第三十六天打卡

大家好&#xff01;今天我们就会正式进入动态规划的章节&#xff0c;以前我们相继学完了回溯算法&#xff0c;贪心算法&#xff0c;今天的动态规划应该是相当重要同时也是相当难的章节&#xff0c;那我们废话不多说直接进入我们今天的章节。 第一部分 动态规划理论基础 那究竟…...

Python操作MySQL 连接加入缓存层完整方案

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 1、整体架构设计2、MySQL 连接方案2.1 使用连接池 (推荐)2.2 使用 SQLAlchemy (ORM方案)3、缓存层实现方案3.1 Redis 缓存实现3.2 Memcached 缓存实现4、完整集成方案4.1 带缓存的数据库访问层4.2 使用装饰器实现缓存…...

PyTorch深度神经网络(前馈、卷积神经网络)

文章目录 神经网络概述神经元模型多层感知机前馈神经网络网络拓扑结构数学表示基本传播公式符号说明整体函数视角 卷积神经网络卷积神经网络发展简史第一代&#xff08;1943-1980&#xff09;第二代&#xff08;1985-2006&#xff09;第三代&#xff08;2006-至今&#xff09;快…...

现代垃圾收集器

大家好&#xff0c;我是你们的花姐。 话说java的长期支持版本已经发展到了JDK21,大部分同学对jvm中的垃圾收集器还停留在java8之前的CMS和G1。对java11之后引入的低延迟垃圾收集器shenandoah和zgc几乎是一无所知&#xff0c;甚至有同学是连这两个名字也没有听过呀&#xff0c;…...

Android学习总结之类LiveData与ViewModel关系篇

1. ViewModel 和 LiveData 的强依赖关系 ViewModel 和 LiveData 虽非强依赖&#xff0c;但在 Android 架构中常紧密协作&#xff0c;这基于它们的设计理念和优势互补&#xff1a; 数据与 UI 分离&#xff1a;ViewModel 的主要职责是存储和管理与 UI 相关的数据&#xff0c;而…...

GaussDB 实例 gsql 连接方式详解

GaussDB 实例 gsql 连接方式详解 GaussDB 是华为云推出的分布式关系型数据库服务&#xff0c;支持多种数据库引擎&#xff08;如 MySQL、PostgreSQL、SQL Server 等&#xff09;。gsql 是 GaussDB 提供的命令行客户端工具&#xff0c;用于连接和管理数据库实例。本文将详细介绍…...

智能体制作学习笔记2——情感客服

02 案例1-情感客服_哔哩哔哩_bilibili 目录 一、AI对视频内容总结 二、选择可代替视频总结的方案 三、豆包AI插件安装 四、通义 五、情感客服智能体制作 &#xff08;一&#xff09;注册 (二&#xff09;进入工作空间 &#xff08;三&#xff09;创建智能体 &#xff08;…...

部署GraphRAG配置Neo4j实现知识图谱可视化【踩坑经历】

文章目录 概要部署graphrag(一)使用conda创建虚拟环境(前提已经安装好anaconda)(二)部署graphrag 部署neo4jgraphrag生成的知识图谱导入neo4j踩坑经历1.graphrag执行graphrag index --root ./ragtest命令报错2.neo4j没有Relationship types 概要 在本地部署GraphRag&#xff0…...

跨域的几种方案

因为浏览器出于安全考虑&#xff0c;有同源策略。也就是说&#xff0c;如果协议、域名、端口有一个不同就是跨域&#xff0c;Ajax 请求会失败。 我们可以通过以下几种常用方法解决跨域的问题 JSONP JSONP 的原理很简单&#xff0c;就是利用 <script> 标签没有跨域限制…...

5 WPF中的application对象介绍

WPF Application 类提供了一系列生命周期事件,了解它们的触发顺序对于应用程序开发非常重要。以下是主要事件的触发顺序 1. 主要事件顺序 Startup - 应用程序启动时触发 这是第一个触发的事件 适合在此处初始化应用程序级资源 可以在此取消启动(通过设置e.Cancel = true) Act…...

Nexus首次亮相迪拜 TOKEN2049:以“手机 + 钱包 + 公链 + RWA”生态系统引领未来区块链基建

迪拜&#xff0c;2025年5月—— 全球 Web3 基础设施创新平台 Nexus&#xff0c;在本年度迪拜 TOKEN2049 全球峰会 上完成了其主网与全生态系统的首次国际公开亮相。此次参会不仅展示了 Nexus 的国际生态布局&#xff0c;更标志着其迈出了全球化战略关键一步。凭借对现实世界资产…...

C++ 套接字函数详细介绍

目录 头文件1. 套接字创建与配置2. 绑定地址与端口3. 连接建立4. 数据传输5. 套接字选项6. 地址转换7. 套接字关闭8. 其他实用函数 C 套接字函数详细介绍 套接字(Socket)是网络通信的基本端点&#xff0c;C中通常使用BSD套接字API进行网络编程。以下是主要的套接字相关函数及其…...

WordPress 和 GPL – 您需要了解的一切

如果您使用 WordPress&#xff0c;GPL 对您来说应该很重要&#xff0c;您也应该了解它。查看有关 WordPress 和 GPL 的最全面指南。 您可能听说过 GPL&#xff08;通常被称为 WordPress 的权利法案&#xff09;&#xff0c;但很可能并不完全了解它。这是有道理的–这是一个复杂…...

机器人示教操作

机器人基础操作 **ES机器人试教操作知识** **1. 视角移动** **1.1 基础模式** - 关节轴控制&#xff1a;通过关节1至关节6实现单轴正反转移动 - 直线移动&#xff1a;通过X/Y/Z坐标轴沿指定方向直线移动 - 旋转移动&#xff1a;通过RX/RY/RZ坐标轴绕指定轴旋转 **1.2 步进模式…...

【python】UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xb2

报错 C:\Users\zhangbin\AppData\Local\Programs\Python\Python310\python.exe D:\XTRANS\cuda\03-graph-db\04-cmkg\pdf2zh-v1.9.9-with-assets-win64\pdf2zh\gui.py Traceback (most recent call last): File “D:\XTRANS\cuda\03-graph-db\04-cmkg\pdf2zh-v1.9.9-with-asset…...

[python] python静态方法,类方法,实例方法实现及其区别

一 静态方法 格式: 使用 staticmethmod 装饰器修饰 应用: 某个方法既不需要使用实例属性也不需要使用类属性时,就可以考虑使用静态方法 注意: 静态方法与类无关,可以被转换成函数使用,属于类本身 1.1 经典示例 创建一个与日期相关的辅助函数,这些函数不需要访问或修改类的…...

Kite AI 自动机器人部署教程

最近比较火的AI赛道&#xff0c;每日自动对话训练AI&#xff0c;赚积分 一个个用于 Kite AI 平台的自动交互机器人&#xff0c;支持多钱包和代理。 登记 注册链接 &#x1f31f; 功能 多钱包支持&#xff08;手动输入或基于文件&#xff09; 代理支持&#xff08;HTTP/HTTP…...

50. Pow(x, n)

50. Pow(x, n) 分治法的基本思想是将一个大问题分解成若干个相同或相似的小问题&#xff0c;递归地解决这些小问题&#xff0c;然后将这些小问题的解合并起来得到原问题的解。 class Solution:def myPow(self, x: float, n: int) -> float:# 内部定义了一个嵌套的辅助函数…...

Go 语言 sqlx 库使用:对 MySQL 增删改查

MySQL 作为目前最流行的开源关系型数据库&#xff0c;其 SQL 语法体系已形成行业标准&#xff0c;相关知识体系庞大且成熟&#xff0c;本文不再对 SQL 基础进行详细展开&#xff0c;建议尚未掌握的读者先行系统学习。本文聚焦于如何使用 Go 语言进行 MySQL 数据库操作&#xff…...

反射, 注解, 动态代理

文章目录 单元测试什么是单元测试咱们之前是如何进行单元测试的&#xff1f; 有啥问题 &#xff1f;现在使用方法进行测试优点Junit单元测试的使用步骤删除不需要的jar包总结 反射认识反射、获取类什么是反射反射具体学什么&#xff1f;反射第一步&#xff1a;或者Class对象 获…...

继续预训练 LLM ——数据筛选的思路

GPT生成数据微调qwen-2.5多模态模型实战项目 作者&#xff1a;柠檬养乐多 原文地址&#xff1a;https://zhuanlan.zhihu.com/p/30645776656 qwen2.5-vl是阿里通义实验室推出的qwen系列最新多模态大模型&#xff0c;在许多指标上已经超过或接近了gpt-4o。更为方便的是&#xff0…...

深入解析 PostgreSQL 外部数据封装器(FDW)的 SELECT 查询执行机制

引言 PostgreSQL 中的外部数据封装器&#xff08;Foreign Data Wrapper, FDW&#xff09;是一种扩展&#xff0c;允许您像访问 PostgreSQL 数据库中的表一样&#xff0c;访问和操作存储在外部数据源中的数据。FDW 使 PostgreSQL 能够与多种数据存储系统&#xff08;包括关系型…...

数据库系统概论|第六章:关系数据理论—课程笔记2

前言 前文我们介绍了规划化的基本概念&#xff0c;同时引入了关于规范化的相关定义与基本概念&#xff0c;低一级范式的关系模式&#xff0c;通过模式分解&#xff0c;可以转换为若干个高一级范式的关系模式的集合&#xff0c;这种过程就叫规范化。本文将围绕范式展开讨论&…...

package-lock.json能否直接删除?

package-lock.json能否直接删除&#xff1f; package-lock.json 生成工具&#xff1a;由 npm 自动生成。 触发条件&#xff1a;当运行 npm install 时&#xff0c;如果不存在 package-lock.json&#xff0c;npm 会创建它&#xff1b;如果已存在&#xff0c;npm 会根据它精确安…...

Ubuntu磁盘空间分析:du命令及常用组合

1、du命令的作用 du&#xff08;Disk Usage&#xff09;是 Ubuntu 系统中用于查看目录或文件磁盘使用情况的命令&#xff0c;主要用于分析磁盘空间占用。 2、语法 du [选项] [目录/文件路径]常用选项 2.1、-h 以 KB、MB、GB 等人性化可读格式&#xff08;Human-readable&am…...

《数据库原理》部分习题解析1

《数据库原理》部分习题解析1 1. 名词解释 &#xff08;1&#xff09;关系&#xff08;2&#xff09;属性&#xff08;3&#xff09;域&#xff08;4&#xff09;元组&#xff08;5&#xff09;码&#xff08;6&#xff09;分量&#xff08;7&#xff09;关系模式 &#xff0…...

汇川Easy系列PLC数据值改变功能块(随动增益改变判断)

PLC值改变事件 值改变触发功能块 PLC值改变事件 值改变触发功能块(SCL ST完整源代码)-CSDN博客文章浏览阅读1.1k次。本文介绍了在PLC中处理值改变事件的方法,包括值改变触发功能块的实现,详细讲解了FB接口定义、ST代码,并提供了在博途平台上的实现。此外,还分享了如何利用…...

数据清洗的艺术:如何为AI模型准备高质量数据集?

数据清洗的艺术&#xff1a;如何为AI模型准备高质量数据集&#xff1f; 引言 在人工智能和机器学习领域&#xff0c;我们常常听到"垃圾进&#xff0c;垃圾出"(Garbage in, garbage out)这句格言。无论你的模型架构多么精妙&#xff0c;算法多么先进&#xff0c;如果…...

怎么查看当前vue项目,要求的node.js版本

怎么查看当前vue项目&#xff0c;要求的node.js版本 找到 package.json package-lock.json 搜索 node...

游戏引擎学习第278天:将实体存储移入世界区块

总结并为今天的内容做好铺垫 今天的内容是关于开发一个完整的实体系统&#xff0c;目标是让这个系统更加实际和有效。之前讨论了如何通过一个模拟区域来处理无限大的世界。最初&#xff0c;使用浮动点数而不是双精度浮点数来避免潜在的精度问题&#xff0c;因为一些平台&#…...

计算机组成与体系结构:缓存设计概述(Cache Design Overview)

目录 Block Placement&#xff08;块放置&#xff09; Block Identification&#xff08;块识别&#xff09; Block Replacement&#xff08;块替换&#xff09; Write Strategy&#xff08;写策略&#xff09; 总结&#xff1a; 高速缓存设计包括四个基础核心概念&#xf…...

在Linux中如何使用Kill(),向进程发送发送信号

kill()函数 #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); 函数参数和返回值含义如下: pid:参数 pid 为正数的情况下,用于指定接收此信号的进程 pid;除此之外,参数 pid 也可设置为 0 或-1 以及小于-1 等不同值,稍后给说明。 …...

ElasticSearch重启之后shard未分配问题的解决

以下是Elasticsearch重启后分片未分配问题的完整解决方案&#xff0c;结合典型故障场景与最新实践&#xff1a; 一、快速诊断定位 ‌检查集群状态 GET /_cluster/health?pretty # status为red/yellow时需关注unassigned_shards字段值 ‌ 2.查看未分配分片详情 …...

基于 Spring Boot 瑞吉外卖系统开发(十四)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;十四&#xff09; 查询订单 在管理端的首页&#xff0c;单击左侧菜单栏中的“订单明细”&#xff0c;会在右侧打开订单明细页面。 请求路径&#xff1a;/order/page 请求方法&#xff1a;GET 参数&#xff1a;page pageSize …...

【软件测试】第二章·软件测试的基本概念

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a;&#x1f3c0;软件测试与软件项目管理_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 …...

部署安装gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm

目录 ​编辑 实验环境 所需软件 实验开始 安装部署gitlab171.配置清华源仓库&#xff08;版本高的系统无需做&#xff09;vim /etc/yum.repos.d/gitlab-ce.repo 2.提前下载包dnf localinstall gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm --rocklinux 3.修改配…...

2025五一杭州西湖三天游

2025五一杭州西湖三天游 文章目录 2025五一杭州西湖三天游一、前言二、杭州游玩记录三、杭州三日游小结四、杭州美食街1、河坊街2、胜利河美食街3、高银街4、中山南路美食街5、武林夜市6、啦喜街美食广场7、大兜路美食街 五、豆包推荐的杭州三日游攻略三天主要行程**第一天&…...

实验五:以太网UDP全协议栈的实现(通过远程实验系统)

文章目录 FPGA以太网:从ARP到UDP的完整协议栈一、引言二、核心模块详解1. ARP协议处理模块1.1 `arp_cache`:ARP缓存模块1.2 `arp_tx`:ARP请求与应答发送模块1.3 `arp_rx`:ARP接收与解析模块2. MAC层处理模块2.1 `mac_layer`:MAC层顶层模块2.2 `mac_tx_mode`:MAC发送模式选…...

现代计算机图形学Games101入门笔记(八)

三角形三点已经知道在uv的位置了&#xff0c;那三角形内部的点&#xff0c;怎么算。 先看A 任一点 面积比求 根据三点坐标属性差值出内部点的位置。 纹理太小了&#xff0c;映射处理方式&#xff0c;取邻近的Nearest感觉一格格的&#xff0c;取周围4个权重Bilinear,取4*4Bicubi…...

C语言学习之文件操作

经过前面的学习&#xff0c;我们已经基本掌握了如何去写一个C语言的代码了。但是在实际的项目中&#xff0c;我们不可能不需要文件去操作。因为如果没有文件&#xff0c;我们写的程序是存储在电脑的内存中的。如果程序推出&#xff0c;内存回收数据就随之丢失了。如果我们要对数…...

《AI大模型应知应会100篇》第63篇:AutoGPT 与 BabyAGI:自主代理框架探索

第63篇&#xff1a;AutoGPT 与 BabyAGI&#xff1a;自主代理框架探索 摘要 随着大语言模型&#xff08;LLM&#xff09;技术的不断演进&#xff0c;自主代理&#xff08;Autonomous Agent&#xff09; 正在成为 AI 应用的新范式。它不仅能够理解用户意图&#xff0c;还能自主规…...