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

js+new Date()+moment+时区

文章目录

    • 概要
    • 一、Date对象基础知识
      • 1. 创建Date对象
      • 2. 获取日期和时间信息
      • 3. 设置日期和时间
    • 二、Date对象的应用
      • 1. 日期格式化
      • 2. 时间差计算
      • 3. 倒计时功能
    • moment.js
    • moment 常见场景应用
    • 时区差别
      • 亚洲
      • 欧洲
      • 美洲
      • 大洋洲
    • 时区时间说明

概要

一、Date对象基础知识

1. 创建Date对象

  • 无参数创建
    • 使用new Date()可以创建一个代表当前日期和时间的Date对象。例如:
    let currentDate = new Date();
    console.log(currentDate); 
    
    • 输出的内容类似Fri Nov 22 2024 12:00:00 GMT+0800 (中国标准时间),具体的时间部分(小时、分钟、秒等)会根据当前实际时间显示。
  • 指定日期和时间创建
    • 可以传入日期和时间相关的参数来创建指定时间的Date对象。
    • 传入毫秒数:Date对象内部以从1970年1月1日00:00:00 UTC开始计算的毫秒数来存储日期和时间。例如,let specificDate = new Date(0);创建的是1970年1月1日00:00:00 UTC对应的Date对象,因为参数0代表从1970年1月1日00:00:00 UTC开始的0毫秒。
    • 传入日期字符串:可以传入符合特定格式的日期字符串,如"YYYY - MM - DD"(年 - 月 - 日)或"YYYY/MM/DD"等格式。例如,let anotherDate = new Date("2024-01-01");创建了一个代表2024年1月1日00:00:00本地时间的Date对象。不过需要注意的是,浏览器对日期字符串格式的解析可能会有一些差异。
    • 传入多个数字参数:按照年、月、日、小时、分钟、秒、毫秒的顺序传入参数。例如,let customDate = new Date(2024, 10, 22, 14, 30, 0, 0);创建了一个代表2024年11月22日14:30:00(因为月份是从0开始计数,所以10代表11月)的Date对象。

2. 获取日期和时间信息

  • 获取年、月、日等信息
    • getFullYear():返回日期中的年份,例如currentDate.getFullYear()返回2024(假设currentDate是当前日期)。
    • getMonth():返回日期中的月份,范围是0 - 11,0代表一月,1代表二月,以此类推。所以如果要得到实际的月份,需要在返回值上加1。例如,currentDate.getMonth() + 1可以得到当前月份。
    • getDate():返回日期中的日,范围是1 - 31。例如,currentDate.getDate()返回当前日期是几号。
    • getHours()getMinutes()getSeconds()getMilliseconds()分别用于获取小时、分钟、秒和毫秒信息。
  • 获取星期几信息
    • getDay():返回日期对应的星期几,0代表星期日,1代表星期一,以此类推。例如,currentDate.getDay()可以得到今天是星期几。

3. 设置日期和时间

  • 设置年、月、日等信息
    • setFullYear(year, [month], [date]):用于设置年份,可选择性地设置月份和日期。例如,currentDate.setFullYear(2025)currentDate对象的年份设置为2025年,月份和日期保持不变。如果提供了月份和日期参数,也会相应地进行设置。
    • setMonth(month, [date]):设置月份,可选择性地设置日期。需要注意月份范围是0 - 11。例如,currentDate.setMonth(11)将月份设置为12月(因为0代表1月)。
    • setDate(date):设置日期中的日,范围是1 - 31。例如,currentDate.setDate(1)将日期设置为1号。
    • 类似地,有setHours()setMinutes()setSeconds()setMilliseconds()用于设置小时、分钟、秒和毫秒。

二、Date对象的应用

1. 日期格式化

  • 简单的格式化函数
    • 可以编写一个函数将Date对象格式化为常见的日期格式,如YYYY - MM - DD HH:MM:SS
    function formatDate(date) {let year = date.getFullYear();let month = (date.getMonth() + 1).toString().padStart(2, '0');let day = date.getDate().toString().padStart(2, '0');let hours = date.getHours().toString().padStart(2, '0');let minutes = date.getMinutes().toString().padStart(2, '0');let seconds = date.getSeconds().toString().padStart(2, '0');return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    }
    let currentDate = new Date();
    console.log(formatDate(currentDate));
    
    • 在这个函数中,padStart()方法用于在字符串前面填充0,以保证月份、日期等数字格式是两位数。

2. 时间差计算

  • 计算两个日期之间的时间差(以毫秒为单位)
    • 例如,计算从一个日期到另一个日期过去了多少毫秒。
    let startDate = new Date("2024-01-01");
    let endDate = new Date("2024-02-01");
    let diffInMilliseconds = endDate - startDate;
    console.log(diffInMilliseconds);
    
    • 可以进一步将毫秒转换为天、小时、分钟等单位。例如,要将毫秒转换为天数,可以使用diffInDays = diffInMilliseconds / (1000 * 60 * 60 * 24)

3. 倒计时功能

  • 简单的倒计时示例
    • 假设要实现一个倒计时到某个特定日期的功能,比如倒计时到2025年1月1日。
    function countdown() {let targetDate = new Date("2025-01-01");let currentDate = new Date();let diffInMilliseconds = targetDate - currentDate;let days = Math.floor(diffInMilliseconds / (1000 * 60 * 60 * 24));let hours = Math.floor((diffInMilliseconds % (1000 * 60 * 60 * 24))/ (1000 * 60 * 60));let minutes = Math.floor((diffInMilliseconds % (1000 * 60 * 60))/ (1000 * 60));let seconds = Math.floor((diffInMilliseconds % (1000 * 60)) / 1000);console.log(`距离2025年1月1日还有:${days}${hours}小时 ${minutes}分钟 ${seconds}`);
    }
    countdown();
    
    • 这个函数先计算出目标日期和当前日期的时间差,然后将时间差分别转换为剩余的天数、小时数、分钟数和秒数,并打印出来。可以通过setInterval(countdown, 1000)来每秒更新一次倒计时。

moment.js

  1. 安装和引入
    • 安装
      • 如果使用npm进行项目管理,可以在项目目录下的终端中运行npm install moment来安装moment.js库。
    • 引入
      • 在HTML文件中,可以通过<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>这种方式从CDN引入moment.js
      • 在JavaScript模块中,使用import moment from 'moment';引入(如果是在支持ES6模块的环境下)。
  2. 日期格式化
    • 基本格式
      • moment()函数可以创建一个代表当前日期和时间的moment对象。例如,let now = moment();就获取了当前时间对应的moment对象。
      • 可以使用format()方法来格式化日期。常见的格式化字符包括YYYY(四位年份)、MM(两位月份)、DD(两位日期)、HH(24小时制的两位小时数)、mm(两位分钟数)、ss(两位秒数)。例如:
      let now = moment();
      console.log(now.format('YYYY - MM - DD HH:mm:ss'));
      
      • 输出类似于2024 - 11 - 22 14:30:00(具体时间根据当前时间而定)。
    • 相对时间格式
      • moment.js还可以输出相对时间格式。例如,fromNow()方法可以输出从某个日期到现在的相对时间描述。
      let aWeekAgo = moment().subtract(7, 'days');
      console.log(aWeekAgo.fromNow());
      
      • 输出可能是7 days ago,如果日期是未来的时间,会输出类似in 3 days的内容。
  3. 日期操作
    • 增减时间单位
      • 可以方便地对日期进行增减操作。例如,add()subtract()方法可以用于增加或减少时间单位。
      let tomorrow = moment().add(1, 'days');
      console.log(tomorrow.format('YYYY - MM - DD'));
      let yesterday = moment().subtract(1, 'days');
      console.log(yesterday.format('YYYY - MM - DD'));
      
      • 上述代码分别获取了明天和昨天的日期,并以YYYY - MM - DD格式输出。除了days,还可以对yearsmonthshoursminutesseconds等时间单位进行操作。
    • 设置日期和时间
      • set()方法可以用于设置日期和时间的具体值。例如:
      let customDate = moment();
      customDate.set('year', 2025).set('month', 0).set('date', 1);
      console.log(customDate.format('YYYY - MM - DD'));
      
      • 这段代码将日期设置为2025年1月1日,并输出格式化后的日期。
  4. 日期比较
    • 比较两个日期的先后顺序
      • isBefore()isAfter()isSame()方法可以用于比较两个日期。
      let date1 = moment('2024-01-01');
      let date2 = moment('2024-02-01');
      console.log(date1.isBefore(date2));// true
      console.log(date1.isAfter(date2));// false
      console.log(date1.isSame(date2));// false
      
    • 获取时间差
      • diff()方法可以计算两个日期之间的差值。例如,计算两个日期相差的天数:
      let startDate = moment('2024-01-01');
      let endDate = moment('2024-02-01');
      let diffInDays = endDate.diff(startDate, 'days');
      console.log(diffInDays);
      
      • 输出为31,因为从2024年1月1日到2024年2月1日相差31天。除了days,还可以计算其他时间单位的差值,如yearsmonthshours等。
  5. 本地化和国际化应用
    • 设置语言环境
      • moment.locale()方法可以设置语言环境。例如,设置为中文环境:
      moment.locale('zh - cn');
      let now = moment();
      console.log(now.format('LLLL'));
      
      • 输出的日期格式会符合中文习惯,如2024年11月22日星期四下午2点30分(具体时间部分根据当前时间而定)。
    • 加载语言包
      • 如果要使用多种语言环境,需要加载相应的语言包。可以通过npm安装moment - locale - [language - code](如moment - locale - fr用于法语),然后在代码中加载。例如:
      import moment from 'moment';
      import 'moment/locale/fr';
      moment.locale('fr');
      let now = moment();
      console.log(now.format('LLLL'));
      
      • 这样就可以输出符合法语习惯的日期格式。

moment 常见场景应用

  1. 时间区间处理
    • 时间段计算
      • Moment.js可以方便地处理时间区间相关的操作。例如,计算两个日期之间的时间区间内包含多少个完整的星期。
      let startDate = moment('2024-01-01');
      let endDate = moment('2024-03-01');
      let diffInWeeks = endDate.diff(startDate, 'weeks');
      console.log(diffInWeeks);
      
      • 这里计算出从2024年1月1日到2024年3月1日之间大约包含8个完整的星期(具体数值根据日期计算)。
    • 判断日期是否在区间内
      • 可以判断一个日期是否在给定的时间区间内。例如,有一个活动时间区间是从2024年11月1日到2024年11月30日,判断当前日期是否在这个区间内。
      let activityStart = moment('2024-11-01');
      let activityEnd = moment('2024-11-30');
      let currentMoment = moment();
      if (currentMoment.isBetween(activityStart, activityEnd)) {console.log('当前日期在活动时间区间内');
      } else {console.log('当前日期不在活动时间区间内');
      }
      
  2. 日期排序与分组
    • 日期排序
      • 当有一组日期需要排序时,Moment.js可以提供帮助。例如,有一个日期数组,需要按照日期先后顺序进行排序。
      let datesArray = [moment('2024-03-01'), moment('2024-01-01'), 
      moment('2024-02-01')];
      datesArray.sort((a, b) => a.diff(b));
      datesArray.forEach(date => console.log(date.format('YYYY - MM - DD')));
      
      • 首先,通过sort函数和diff方法来比较日期大小,实现日期的排序。然后,遍历排序后的日期数组并输出格式化后的日期,输出结果将是按照日期先后顺序排列的。
    • 日期分组
      • 根据日期的某个属性(如月份或年份)对日期进行分组。例如,将一组日期按照月份进行分组。
      let dateList = [moment('2024-01-01'), moment('2024-02-01'),moment('2024-02-15'), moment('2024-03-01')];
      let groupedByMonth = {};
      dateList.forEach(date => {let monthKey = date.format('YYYY - MM');if (!groupedByMonth[monthKey]) {groupedByMonth[monthKey] = [];}groupedByMonth[monthKey].push(date);
      });
      console.log(groupedByMonth);
      
      • 首先定义一个空对象groupedByMonth,然后遍历日期列表。对于每个日期,获取其年份 - 月份格式的字符串作为键。如果这个键在对象中不存在,就创建一个空数组。最后,将日期添加到对应的月份数组中。这样就实现了按照月份对日期进行分组,输出的groupedByMonth对象将包含按照月份分组后的日期数组。
  3. 复杂的时间计算和业务逻辑支持
    • 工作时间计算
      • 在业务场景中,例如计算一个任务在工作时间(假设周一到周五,每天9点 - 17点)内的剩余时间。
      let taskStartTime = moment('2024-11-22 15:00');
      let taskEndTime;
      let currentTime = moment();
      let isWorkingDay = currentTime.day() >= 1 && currentTime.day() <= 5;
      let isWorkingHours = currentTime.hour() >= 9 && currentTime.hour() < 17;
      if (isWorkingDay && isWorkingHours) {if (taskStartTime.isBefore(currentTime)) {taskEndTime = moment().endOf('day').hour(17).minute(0).second(0);} else {taskEndTime = taskStartTime.clone().endOf('day').hour(17).minute(0).second(0);}let remainingTime = taskEndTime.diff(currentTime);console.log(`任务剩余时间为:${moment.duration(remainingTime).humanize()}`);
      } else {console.log('当前不在工作时间内');
      }
      
      • 首先判断当前时间是否是工作时间。如果是,再判断任务开始时间是否已经过去。然后根据情况计算任务的结束时间(当天17点),最后计算剩余时间并以人性化的方式(如2 hours left)输出。
    • 周期性事件计算
      • 对于周期性事件,比如每个月的第一天提醒用户做某事。可以通过Moment.js来判断当前日期是否是每个月的第一天。
      let currentDate = moment();
      if (currentDate.date() === 1) {console.log('今天是本月第一天,提醒您执行操作');
      }
      

时区差别

以下是一些常见地区与北京时间的时区差值统计:

亚洲

  • 日本:日本采用东九区时间(UTC+09:00),与北京时间(东八区,UTC+08:00)相差1小时.
  • 韩国:韩国同样采用东九区时间,与北京时间相差1小时 。
  • 印度:印度采用东5.5区时间(UTC+05:30),与北京时间相差2.5小时.

欧洲

  • 英国:英国采用零时区时间(UTC±00:00),与北京时间相差8小时.
  • 法国:法国采用东一区时间(UTC+01:00),与北京时间相差7小时 。
  • 德国:德国采用东一区时间,与北京时间相差7小时 。

美洲

  • 美国东部:美国东部时间为西五区时间(UTC-05:00),与北京时间相差13小时。但在夏令时期间,美国东部时间会调快1小时,此时与北京时间相差12小时.
  • 美国中部:美国中部时间为西六区时间(UTC-06:00),与北京时间相差14小时。夏令时期间,相差13小时 。
  • 美国西部:美国西部时间为西八区时间(UTC-08:00),与北京时间相差16小时。夏令时期间,相差15小时 。
  • 加拿大:加拿大跨多个时区,如东部的多伦多等地采用西五区时间,与北京时间相差13小时;西部的温哥华等地采用西八区时间,与北京时间相差16小时 。

大洋洲

  • 澳大利亚东部:澳大利亚东部采用东十区时间(UTC+10:00),与北京时间相差2小时 。
  • 澳大利亚西部:澳大利亚西部采用东八区时间,与北京时间无时差 。
  • 新西兰:新西兰采用东十二区时间(UTC+12:00),与北京时间相差4小时.

时区时间说明

  1. 地球自转与时区时间先后顺序
    • 地球自西向东自转,这就导致东边的地区会比西边的地区更早看到太阳,时间也就更早。因此,在地球上越往东的地区,时间越快。
  2. 时区划分与时间比较示例
    • 时区是按照经度划分的,全球共划分为24个时区。以本初子午线(0°经线)为中心,向东、向西各7.5°为零时区。然后从零时区的边界分别向东、向西,每隔15°划分一个时区。
    • 例如,当北京时间(东八区)是上午10点的时候,位于其东边的日本(东九区)时间是上午11点,而位于其西边的印度(东5.5区)时间约是上午7点30分。所以从时间快慢的角度来说,东边(如东北方向的日本相对于中国)的时间更快,西边(如印度相对于中国)的时间更慢。
  3. 特殊情况说明
    • 不过,需要注意的是在计算日期变更时,存在国际日期变更线。这条线大致沿着180°经线,当从东向西越过这条线时,日期要加一天;从西向东越过这条线时,日期要减一天。这是为了避免在环球旅行等情况下出现日期混乱的问题。例如,从亚洲向东跨越太平洋到达美洲时,会经过国际日期变更线,日期会发生变化,而不是单纯按照东边时间快的原则来计算。

相关文章:

js+new Date()+moment+时区

文章目录 概要一、Date对象基础知识1. 创建Date对象2. 获取日期和时间信息3. 设置日期和时间 二、Date对象的应用1. 日期格式化2. 时间差计算3. 倒计时功能 moment.jsmoment 常见场景应用时区差别亚洲欧洲美洲大洋洲 时区时间说明 概要 一、Date对象基础知识 1. 创建Date对象…...

OpenCV、YOLO、VOC、COCO之间的关系和区别

OpenCV、YOLO、COCO 和 VOC 是计算机视觉和深度学习领域常见的几个名词&#xff0c;它们分别代表不同的工具、算法和数据集&#xff0c;之间有一些联系和区别。下面分别说明它们的定义、用途以及相互关系。 1. OpenCV&#xff08;Open Source Computer Vision Library&#xf…...

迁移学习理论与应用

迁移学习&#xff08;Transfer Learning&#xff09;是一种机器学习技术&#xff0c;旨在将一个任务&#xff08;源任务&#xff09;上学到的知识迁移到另一个相关但不完全相同的任务&#xff08;目标任务&#xff09;上&#xff0c;从而提高目标任务的学习效果。这种方法的核心…...

Python-简单病毒程序合集(一)

前言&#xff1a;简单又有趣的Python恶搞代码&#xff0c;往往能给我们枯燥无味的生活带来一点乐趣&#xff0c;激发我们对编程的最原始的热爱。那么话不多说&#xff0c;我们直接开始今天的编程之路。 编程思路&#xff1a;本次我们将会用到os,paltform,threading,ctypes,sys,…...

AI安全:从现实关切到未来展望

近年来&#xff0c;人工智能技术飞速发展&#xff0c;从简单的图像识别到生成对话&#xff0c;从自动驾驶到医疗诊断&#xff0c;AI技术正深刻改变着我们的生活。然而&#xff0c;伴随着这些进步&#xff0c;AI的安全性和可控性问题也日益凸显。这不仅涉及技术层面的挑战&#…...

集成金蝶云星空数据至MySQL的完整案例解析

金蝶云星空数据集成到MySQL的技术案例分享 在企业信息化系统中&#xff0c;数据的高效流动和准确同步是确保业务连续性和决策支持的重要环节。本文将聚焦于一个具体的系统对接集成案例——金蝶云星空的数据集成到MySQL&#xff0c;方案名称为“2金蝶物料同步到商城中间表”。 …...

C++格式化输入输出【练习版】

一、引言 在 C 编程中&#xff0c;准确地进行输入输出操作是构建功能强大且用户友好程序的关键。格式化输入输出允许我们以特定的格式展示数据&#xff0c;确保数据的可读性和准确性。本文将深入探讨 C 的格式化输入输出&#xff0c;通过丰富的练习例题和详细的答案解析&#x…...

aws服务(二)机密数据存储

在AWS&#xff08;Amazon Web Services&#xff09;中存储机密数据时&#xff0c;安全性和合规性是最重要的考虑因素。AWS 提供了多个服务和工具&#xff0c;帮助用户确保数据的安全性、机密性以及合规性。以下是一些推荐的存储机密数据的AWS服务和最佳实践&#xff1a; 一、A…...

CIO40: 回头再看ERP之“4问”

1、在数字化时代的今天&#xff0c;ERP现在的定位是&#xff1f; ERP软件财务化&#xff0c;我觉得是一个趋势&#xff0c;但是短期内&#xff08;2-3年&#xff09;ERP依然是企业的核心系统。这要看企业外部系统的建设情况&#xff0c;ERP系统的使用深度&#xff08;特别是一些…...

数据库类型介绍

1. 关系型数据库&#xff08;Relational Database, RDBMS&#xff09;&#xff1a; • 定义&#xff1a;基于关系模型&#xff08;即表格&#xff09;存储数据&#xff0c;数据之间通过外键等关系相互关联。 • 特点&#xff1a;支持复杂的SQL查询&#xff0c;数据一致性和完整…...

深入理解 Spring Boot 的 CommandLineRunner 原理及使用

引言 在开发 Spring Boot 应用程序时&#xff0c;我们经常需要在应用程序启动后执行一些初始化任务&#xff0c;比如加载初始数据、连接外部服务、执行健康检查等。Spring Boot 提供了 CommandLineRunner 接口&#xff0c;使得这些任务的实现变得非常简单和直观。本文将深入探…...

人工智能深度学习-Torch框架-数学运算

数学的基本操作 1.floor&#xff1a;向下取整 2.celi&#xff1a;向上取整 3.round&#xff1a;四舍五入&#xff0c;这里的四舍五入还要看前面整数的奇偶性&#xff0c;基进偶不进 4.trunc&#xff1a;只保留整数 5.frac&#xff1a;只保留小数部分 6.fix&#xff1a;向…...

操作系统的理解

目录 一、冯伊诺曼体系结构 二、操作系统的概念 三、如何理解“管理”&#xff1f; 四、系统调用和库调用的概念 一、冯伊诺曼体系结构 冯伊诺曼体系结构描述的是计算机硬件结构&#xff0c;相当于计算机的骨架。它大体可以分为4部分&#xff1a; 输入设备&#xff1a;键盘…...

SpringDataNeo4j使用详解

SDN快速入门 Spring Data Neo4j简称SDN&#xff0c;是Spring对Neo4j数据库操作的封装&#xff0c;其底层基于neo4j-java-driver实现。 我们使用的版本为&#xff1a;6.2.3&#xff0c;官方文档&#xff1a; 下面我们将基于项目中的运输路线业务进行学习&#xff0c;例如&#…...

undefined symbol: __nvJitLinkComplete_12_4, version libnvJitLink.so.12 问题解决

​ 在部署运行opencompass项目时遇到了如下报错&#xff1a; ImportError: /data/conda/envs/opencompass/lib/python3.10/site-packages/torch/lib/../../nvidia/cusparse/lib/libcusparse.so.12: undefined symbol: __nvJitLinkComplete_12_4, version libnvJitLink.so.12​…...

记一次:软著申请

前言&#xff1a;公司每年都有申请软著或者发明&#xff0c;可惜没有我的名字&#xff0c;没关系&#xff0c;我可以按个人的名义去申请一个&#xff0c;于是乎就有了这篇文章。话不多说&#xff0c;展示 之前还犹豫要不要发表一下&#xff0c;经过朋友的劝说&#xff0c;自己的…...

IntelliJ+SpringBoot项目实战(四)--快速上手数据库开发

对于新手学习SpringBoot开发&#xff0c;可能最急迫的事情就是尽快掌握数据库的开发。目前数据库开发主要流行使用Mybatis和Mybatis Plus,不过这2个框架对于新手而言需要一定的时间掌握&#xff0c;如果快速上手数据库开发&#xff0c;可以先按照本文介绍的方式使用JdbcTemplat…...

筑起数字堡垒:解析AWS高防盾(Shield)的全面防护能力

引言 在数字化时代&#xff0c;网络攻击的频率和复杂性持续增加。分布式拒绝服务&#xff08;DDoS&#xff09;攻击成为威胁在线业务的主要手段之一。AWS推出的高防盾&#xff08;AWS Shield&#xff09;是一项专注于DDoS防护的服务&#xff0c;帮助用户保护其应用程序和数据免…...

python语言基础

1. 基础语法 Q: Python 中的变量与数据类型有哪些&#xff1f; A: Python 支持多种数据类型&#xff0c;包括数字&#xff08;整数 int、浮点数 float、复数 complex&#xff09;、字符串 str、列表 list、元组 tuple、字典 dict 和集合 set。每种数据类型都有其特定的用途和…...

vue2 src_Todolist编辑($nextTick)

main.js //引入Vue import Vue from "vue"; //引入App import App from ./App;//关闭Vue的生产提示 Vue.config.productionTip false;new Vue({el: #app,render: h > h(App),beforeCreate() {//事件总线Vue.prototype.$bus this;} });App.vue <template>…...

复习!!!

前言&#xff1a; 今天好像没有复习什么&#xff0c;对了&#xff0c;老师让我们写作业来着 那个乌云漏洞网站真的好啊&#xff0c;虽然很老&#xff0c;但是有思路啊 乌云(WooYun.org)历史漏洞查询---http://WY.ZONE.CI 复习&#xff1a; 今天主要复习了nuclei工具的用法…...

面试题---深入源码理解MQ长轮询优化机制

引言 在分布式系统中&#xff0c;消息队列&#xff08;MQ&#xff09;作为一种重要的中间件&#xff0c;广泛应用于解耦、异步处理、流量削峰等场景。其中&#xff0c;延时消息和定时消息作为MQ的高级功能&#xff0c;能够进一步满足复杂的业务需求。为了实现这些功能&#xf…...

使用 PyTorch TunableOp 加速 ROCm 上的模型

Accelerating models on ROCm using PyTorch TunableOp — ROCm Blogs (amd.com) 在这篇博客中&#xff0c;我们将展示如何利用 PyTorch TunableOp 在 AMD GPU 上使用 ROCm 加速模型。我们将讨论通用矩阵乘法&#xff08;GEMM&#xff09;的基础知识&#xff0c;展示调优单个 G…...

配置Springboot+vue项目在ubuntu20.04

一、jdk1.8环境配置 (1) 安装jdk8&#xff1a; sudo apt-get install openjdk-8-jdk (2) 检查jdk是否安装成功&#xff1a; java -version(3) 设置JAVA_HOME&#xff1a; echo export JAVA_HOME/usr/lib/jvm/java-17-openjdk-amd64 >> ~/.bashrc echo export PATH$J…...

基于SpringBoot的在线教育系统【附源码】

基于SpringBoot的在线教育系统 效果如下&#xff1a; 系统登录页面 系统管理员主页面 课程管理页面 课程分类管理页面 用户主页面 系统主页面 研究背景 随着互联网技术的飞速发展&#xff0c;线上教育已成为现代教育的重要组成部分。在线教育系统以其灵活的学习时间和地点&a…...

国土安全部发布关键基础设施安全人工智能框架

美国国土安全部 (DHS) 发布建议&#xff0c;概述如何在关键基础设施中安全开发和部署人工智能 (AI)。 https://www.dhs.gov/news/2024/11/14/groundbreaking-framework-safe-and-secure-deployment-ai-critical-infrastructure 关键基础设施中人工智能的角色和职责框架 https:/…...

散户持股增厚工具:智能T0算法交易

最近市场很多都说牛市&#xff0c;但是大多数朋友怎么来的又怎么吐出去了。这会儿我们用T0的智能算法交易又可以增厚我们的持仓收益。简单来说&#xff0c;就是基于用户原有的股票持仓&#xff0c;针对同一标的&#xff0c;配合智能T0算法&#xff0c;每天全自动操作&#xff0…...

28、js基本数据类型

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title></title> </head> <body> </body> <script> //JS是弱语言类型,只有一种var,由隐藏类型 //基本数据类型…...

MacOS下的Opencv3.4.16的编译

前言 MacOS下编译opencv还是有点麻烦的。 1、Opencv3.4.16的下载 注意&#xff0c;我们使用的是Mac&#xff0c;所以ios pack并不能使用。 如何嫌官网上下载比较慢的话&#xff0c;可以考虑在csdn网站上下载&#xff0c;应该也是可以找到的。 2、cmake的下载 官网的链接&…...

[免费]SpringBoot+Vue毕业设计论文管理系统【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue毕业设计论文管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue毕业设计论文管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 现代经济快节奏发展以及不断完善升级的信…...

科研深度学习:如何精选GPU以优化服务器性能

GPU在科研深度学习中的核心价值 在科研深度学习的范畴内&#xff0c;模型训练是核心环节。面对大规模参数的模型训练&#xff0c;这往往是科研过程中最具挑战性的部分。传统CPU的计算模式在处理复杂模型时&#xff0c;训练时间会随着模型复杂度的增加而急剧增长&#xff0c;这…...

嵌入式系统与OpenCV

目录 一、OpenCV 简介 二、嵌入式 OpenCV 的安装方法 1. Ubuntu 系统下的安装 2. 嵌入式 ARM 系统中的安装 3. Windows10 和树莓派系统下的安装 三、嵌入式 OpenCV 的性能优化 1. 介绍嵌入式平台上对 OpenCV 进行优化的必要性。 2. 利用嵌入式开发工具&#xff0c;如优…...

C++学习——编译的过程

编译的过程——预处理 引言预处理包含头文件宏定义指令条件编译 编译、链接 引言 C程序编译的过程&#xff1a;预处理 -> 编译&#xff08;优化、汇编&#xff09;-> 链接 编译和链接的内容可以查阅这篇文章&#xff08;点击查看&#xff09; 预处理 编译预处理是指&a…...

接口测试和单元测试

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口测试的本质&#xff1a;就是通过数据驱动&#xff0c;测试类里面的函数。 单元测试的本质&#xff1a;通过代码级别&#xff0c;测试函数。 单元测试的框架…...

redis工程实战介绍(含面试题)

文章目录 redis单线程VS多线程面试题**redis是多线程还是单线程,为什么是单线程****聊聊redis的多线程特性和IO多路复用****io多路复用模型****redis如此快的原因** BigKey大批量插入数据测试数据key面试题海量数据里查询某一固定前缀的key如果生产上限值keys * &#xff0c;fl…...

深度学习:GPT-1的MindSpore实践

GPT-1简介 GPT-1&#xff08;Generative Pre-trained Transformer&#xff09;是2018年由Open AI提出的一个结合预训练和微调的用于解决文本理解和文本生成任务的模型。它的基础是Transformer架构&#xff0c;具有如下创新点&#xff1a; NLP领域的迁移学习&#xff1a;通过最…...

内嵌编辑器+AI助手,Wave Terminal打造终端新体验

作为新一代终端工具的佼佼者&#xff0c;Wave Terminal 突破性地将传统命令行与现代图形界面相结合&#xff0c;为开发者带来全新的操作体验。这款创新的开源终端工具跨越了操作系统的界限&#xff0c;完美支持 macOS、Windows 和 Linux 平台&#xff0c;特别适合需要频繁处理远…...

《Object类》

目录 一、Object类 1.1 定义与地位 1.2 toString()方法 1.3 equals()方法 1.4 hashcode()方法 一、Object类 1.1 定义与地位 Object类是Java语言中的根类&#xff0c;所有的类&#xff08;除了Object类&#xff09;都直接或间接继承自Object。这就意味着在Java中&#xf…...

GPTZero:高效识别AI生成文本,保障学术诚信与内容原创性

产品描述 GPTZero 是一款先进的AI文本检测工具&#xff0c;专为识别由大型语言模型&#xff08;如ChatGPT、GPT-4、Bard等&#xff09;生成的文本而设计。它通过分析文本的复杂性和一致性&#xff0c;判断文本是否可能由人类编写。GPTZero 已经得到了超过100家媒体机构的报道&…...

2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略 完整参考论文(1)

摘要 近年来,中国宠物食品行业迅速增长,但面临复杂的国际形势和多变的市场环境,因此科学地分析和预测该行业的发展趋势至关重要。本研究通过构建多个机器学习与统计回归模型,量化分析中国宠物食品行业的关键驱动因素,预测未来宠物食品总产值和出口值。 在数据处理部分,…...

深入实践 Shell 脚本编程:高效自动化操作指南

一、什么是 Shell 脚本&#xff1f; Shell 脚本是一种用 Shell 编写的脚本程序&#xff0c;用于执行一系列的命令。它是 Linux/Unix 系统中自动化管理任务的利器&#xff0c;能够显著提升工作效率&#xff0c;特别适合批量处理文件、监控系统状态、自动部署等任务。 二、Shell…...

用代码如何创建Python代理池

1. 导入所需库 这里使用requests库来发送HTTP请求获取网页内容和测试代理是否可用&#xff0c;BeautifulSoup用于解析网页&#xff08;比如从提供代理列表的网页提取代理信息&#xff09;&#xff0c;random用于随机选择代理&#xff0c;time用于设置请求间隔等操作。 2. 获取…...

python蓝桥杯刷题2

1.最短路 题解&#xff1a;这个采用暴力枚举&#xff0c;自己数一下就好了 2.门牌制作 题解&#xff1a;门牌号从1到2020&#xff0c;使用for循环遍历一遍&#xff0c;因为range函数无法调用最后一个数字&#xff0c;所以设置成1到2021即可&#xff0c;然后每一次for循环&…...

跨境出海安全:如何防止PayPal账户被风控?

今天咱们聊聊那些让人头疼的事儿——PayPal账户被风控。不少跨境电商商家反馈&#xff0c;我们只是想要安安静静地在网上做个小生意&#xff0c;结果不知道为什么&#xff0c;莫名其妙账户就被冻结了。 但其实每个封禁都是有原因的&#xff0c;今天就来给大家分享分享可能的原…...

学习与理解LabVIEW中多列列表框项名和项首字符串属性

多列列表框控件在如下的位置&#xff1a; 可以对该控件右击&#xff0c;如下位置&#xff0c;即可设置该控件的显示项&#xff1a; 垂直线和水平线指的是上图中组成单元格的竖线和横线&#xff08;不包括行首列首&#xff09; 现在介绍该多列列表框的两个属性&#xff0c;分别…...

多摩川编码器协议及单片机使用

参考&#xff1a; https://blog.csdn.net/qq_28149763/article/details/132718177 https://mp.weixin.qq.com/s/H4XoR1LZSMH6AxsjZuOw6g 1、多摩川编码器协议 多摩川数据通讯是基于485 硬件接口标准NRZ 协议&#xff0c;通讯波特率为2.5Mbps 的串行通讯&#xff0c;采用差分两…...

小雪时节,阴盛阳衰,注意禁忌

宋张嵲《小雪作》 霜风一夜落寒林&#xff0c;莽苍云烟结岁阴。 把镜渐无勋业念&#xff0c;爱山唯驻隐沦心。 冰花散落衡门静&#xff0c;黄叶飘零一迳深。 世乱身穷无可奈&#xff0c;强将悲慨事微吟。 网络图片&#xff1a;小雪时节 笔者禁不住喟然而叹&#xff1a;“冰…...

shell脚本

一.要求 1.接收用户部署的服务名称 2.判断服务是否安装 ​ 已安装&#xff1b;自定义网站配置路径为/www&#xff1b;并创建共享目录和网页文件&#xff1b;重启服务 ​ 没有安装&#xff1b;安装对应的软件包 3.测试 判断服务是否成功运行&#xff1b; ​ 已运行&#…...

[371]基于springboot的高校实习管理系统

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统高校实习管理系统信息管理难度大&#xff0c;容错率低&am…...

NVR管理平台EasyNVR多个NVR同时管理:全方位安防监控视频融合云平台方案

EasyNVR是基于端-边-云一体化架构的安防监控视频融合云平台&#xff0c;具有简单轻量的部署方式与多样的功能&#xff0c;支持多种协议&#xff08;如GB28181、RTSP、Onvif、RTMP&#xff09;和设备类型&#xff08;IPC、NVR等&#xff09;&#xff0c;提供视频直播、录像、回放…...