Java日期的学习篇

关于日期的学习

目录

  • 关于日期的学习
    • JDK8以前的API
      • Date
        • Date常用API
        • Date的API应用
      • SimpleDateFormat
        • SimpleDateFormat常用API
        • 测试
      • 反向格式化(逆操作)
        • 测试
      • 训练案例
        • 需求(秒杀活动)
        • 实现
      • Calendar
        • 需求痛点
        • 常见API
        • 应用测试
    • JDK8及以后的API(修改与新增)
      • 为啥学习(推荐使用)
      • 新增的API
        • Local...(或Local开头)API创建对象的方案
        • LocalDate常用API
        • LocalTime常用API
        • LocalDateTime常用API
        • Zone开头的
        • Instant(某个时刻/时间戳)API
        • DateTimeForMatter(时间格式化器)API
        • Period常用API
        • Duration常用API
    • 拓展
      • 时间格式符号
    • 参考视频


JDK8以前的API

Date

Date常用API

  
在这里插入图片描述
  

Date的API应用

测试

package com.xie.time;import java.util.Date;
/*** JDK8以前的日期API* 目标:掌握Data日期类的使用* 重点:* 时间毫秒值 跟 日期对象 之间 的转化关系 要厘清* */
public class DateTest {public static void main(String[] args) {// 创建一个Data的对象,代表的是系统的当前时间信息Date date1 = new Date();System.out.println(date1);// 获取时间毫秒值long times = date1.getTime();System.out.println(times);/** 把时间毫秒值 转换成 日期对象,计算2秒之后的时间* 利用有参构造器进行转化* */times += 2 * 1000;Date date2 = new Date(times);System.out.println(date2);/** 或通过setTime()方法直接进行修改 */Date date3 = new Date();date3.setTime(times);System.out.println(date3);}
}

SimpleDateFormat

SimpleDateFormat常用API

  
在这里插入图片描述  


格式化工作示意

  
在这里插入图片描述
  

测试
package com.xie.time;import java.text.SimpleDateFormat;
import java.util.Date;
/*** 优化Date,对日期格式进行格式化,使用户更加容易识别与接受** 目标:掌握对于SimpleDateFormat的使用* 注:SimpleDateFormat代表简单日期格式化,可以用来 把日期对象、时间毫秒值 格式化成 我们想要的形式* */
public class SimpleDateFormatTest {public static void main(String[] args) {// 获取时间对象及毫秒值Date date1 = new Date();long times = date1.getTime();/** 创建一个格式化对象,分别进行日期对象和时间毫秒值的格式化操作 */// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE a");SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");/** 进行时间对象格式化 */String format1 = sdf.format(date1);System.out.println(format1);/** 进行时间毫秒值格式化 */String format2 = sdf.format(times);System.out.println(format2);}
}

反向格式化(逆操作)

  
在这里插入图片描述
  

测试
package com.xie.time;import java.text.SimpleDateFormat;
/*** 反向操作,把字符串时间格式 解析成 日期对象* 目标:掌握SimpleDateFormat解析字符串时间 成 日期对象* */
public class SimpleDateFormatTest2 {public static void main(String[] args) throws Exception {// 设计一个字符串时间String dateStr = "2018-10-11 12:12:11";/** 创建简单日期格式化对象* 注:指定的时间格式 必须与 被解析的时间格式一模一样,否则程序会出bug。* */SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 解析并打印输出System.out.println(sdf.parse(dateStr));}
}

训练案例

需求(秒杀活动)

  
在这里插入图片描述
  

实现
package com.xie.time.case1;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*** 秒杀活动案例* 结果预测:小贾成功,小皮失败* */
public class Shop {public static void main(String[] args) throws ParseException {/** 用变量记录秒杀活动案例开始时间、结束时间、小贾下单时间、小皮下单时间 */String startTime = "2023年11月11日 0:0:0";String endTime = "2023年11月11日 0:10:0";String xj = "2023年11月11日 0:01:18";String xp = "2023年11月11日 0:10:51";/** 创建简单格式化对象,把上面的字符串时间格式 解析成 日期对象 */SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// 解析成日期对象Date startTimeFormat = sdf.parse(startTime);Date endTimeFormat = sdf.parse(endTime);Date xjFormat = sdf.parse(xj);Date xpFormat = sdf.parse(xp);/** 把日期对象 转化成 时间毫秒值 */long startTimes = startTimeFormat.getTime();long endTimes = endTimeFormat.getTime();long xjTimes = xjFormat.getTime();long xpTimes = xpFormat.getTime();/** 通过时间比对 判断 秒杀操作成功与否 *//*** 小贾* */if (xjTimes >= startTimes && xjTimes <= endTimes) {System.out.println("小贾秒杀成功了~~~");}else {System.out.println("小贾秒杀失败了~~~");}/*** 小皮* */if (xpTimes >= startTimes && xpTimes <= endTimes) {System.out.println("小皮秒杀成功了~~~");}else {System.out.println("小皮秒杀失败了~~~");}}
}

Calendar

需求痛点

  
在这里插入图片描述
  
在这里插入图片描述
  

常见API

  
在这里插入图片描述
  

Calendar代表的是系统此刻时间对应的日历,通过它可以单独获取修改时间中的年、月、日、时、分、秒等。

Calendar是可变对象,一旦修改后其对象本身表示的时间将产生变化

应用测试
package com.xie.time;import java.util.Calendar;
import java.util.Date;
/*** 日历对象的创建及使用* 目标:掌握Calender的使用和特点* */
public class CalenderTest {public static void main(String[] args) {/** 得到系统此刻时间对应的日历对象 并打印输出*/Calendar calendar = Calendar.getInstance();System.out.println(calendar);// 获取日历中的某个信息,并打印输出System.out.println(calendar.get(Calendar.YEAR));System.out.println(calendar.get(Calendar.MONTH));System.out.println(calendar.get(Calendar.DAY_OF_YEAR));System.out.println(calendar.get(Calendar.DAY_OF_MONTH));// 获取日历中记录的日期对象Date date = calendar.getTime();System.out.println(date);// 获取到时间毫秒值long times = calendar.getTimeInMillis();System.out.println(times);System.out.println("---------------分隔符-----------------");/** 修改日历中的某位信息 */// 修改月份为11月,切记是从0开始遍历的calendar.set(Calendar.MONTH, 11);// 修改一年中的第几天 为第几天calendar.set(Calendar.DAY_OF_YEAR, 125);/** 增加或减少计算 */calendar.add(calendar.DAY_OF_YEAR, 100);calendar.add(calendar.DAY_OF_YEAR, -10);calendar.add(Calendar.DAY_OF_MONTH, 6);calendar.add(Calendar.HOUR, 12);// 打印输出查看修改效果System.out.println(calendar);}
}

JDK8及以后的API(修改与新增)

:很多方法都是返回不可变对象不同于JDK8之前的

为啥学习(推荐使用)

  
在这里插入图片描述
  


新增的API

  
在这里插入图片描述

  
在这里插入图片描述

  


Local…(或Local开头)API创建对象的方案

  
在这里插入图片描述
  

LocalDate常用API

  
在这里插入图片描述
  

应用测试

package com.xie.time.local;import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
/*** LocalDate API应用测试* */
public class LocalDateTest {public static void main(String[] args) {/** 获取本地日期对象(不可变对象,而JDK8之前是可变对象) */LocalDate dateObject = LocalDate.now();System.out.println(dateObject);// 1、获取日期对象中的信息int year = dateObject.getYear();Month month = dateObject.getMonth();int dayOfMonth = dateObject.getDayOfMonth();int dayOfYear = dateObject.getDayOfYear();DayOfWeek dayOfWeek = dateObject.getDayOfWeek();System.out.println(dayOfWeek);int value = dateObject.getDayOfWeek().getValue();System.out.println(value);System.out.println(year);// 2、直接修改某个信息: withYear、withMonth、withDayOfMonth、withDayOfYear/*** 每次修改都会返回一个 新的 日期对象* */System.out.println("------------------------------------");LocalDate dateObject2 = dateObject.withYear(2099);LocalDate dateObject3 = dateObject.withMonth(12);System.out.println("新的年-->" + dateObject2);System.out.println("旧的年-->" + dateObject);System.out.println("新的月-->" + dateObject3);// 3、把某个信息加多少: plusYears、plusMonths、plusDays、plusWeeks/*** 同样,每次修改都会返回一个 新的 日期对象* */System.out.println("================================");LocalDate dateObject4 = dateObject.plusYears(2);System.out.println("加了2年-->" + dateObject4);// 4、把某个信息减多少: minusYears、minusMonths、minusDays、minusWeeks/*** 同样,每次修改都会返回一个 新的 日期对象* */System.out.println("================================");LocalDate dateObject5 = dateObject.minusYears(2);System.out.println("减了2年-->" + dateObject5);LocalDate dateObject6 = dateObject.minusMonths(2);System.out.println("减了2月-->" + dateObject6);// 5、获取指定日期的LocalDate对象: public static LocalDate of(int year,int month, int dayOfMonth)/*** 同样,每次修改都会返回一个 新的 日期对象* */System.out.println("================================");LocalDate dateObject7 = dateObject.of(2099, 12, 1);LocalDate dateObject8 = dateObject.of(2099, 12, 1);System.out.println("指定日期-->" + dateObject7);// 6、判断2个日期对象,是否相等,在前还是在后: equals isBefore isAfter/*** 同样,每次修改都会返回一个 新的 日期对象* */System.out.println("================================");System.out.println(dateObject7.equals(dateObject8));// trueSystem.out.println(dateObject7.isAfter(dateObject));// trueSystem.out.println(dateObject8.isBefore(dateObject));// false}
}
LocalTime常用API

  
在这里插入图片描述
  

应用测试

package com.xie.time.local;import java.time.LocalTime;
/*** LocalTime API应用测试* */
public class LocalTimeTest {public static void main(String[] args) {/** 获取本地时间对象 */LocalTime time = LocalTime.now();System.out.println(time);// 获取时间对象中的信息int hour = time.getHour();//时int minute = time.getMinute();//分int second = time.getSecond();//秒int nano = time.getNano();//纳秒// 2、修改时间: withHour、withMinute、withSecond、withNanoLocalTime time3 = time.withHour(10);LocalTime time4 = time.withMinute(10);LocalTime time5 = time.withSecond(10);LocalTime time6 = time.withNano(10);// 3、加多少: pLusHours、plusMinutes、plusSeconds、plusNanosLocalTime time7 = time.plusHours(10);LocalTime time8 = time.plusMinutes(10);LocalTime time9 = time.plusSeconds(10);LocalTime time10= time.plusNanos(10);// 4、减多少:minusHours、minusMinutes、minusSeconds、minusNanosLocalTime time11 = time.minusHours(10);LocalTime time12 = time.minusMinutes(10);LocalTime time13 = time.minusSeconds(10);LocalTime time14 = time.minusNanos(10);// 5、获取指定时间的LocalTime对象:// public static LocalTime of(int hour,int minute,int second)LocalTime time15 = LocalTime.of( 12,12 ,12);LocalTime time16 = LocalTime.of(12,12 ,12);// 6、判断2个时间对象,是否相等,在前还是在后:equals isBefore isAfterSystem.out.println(time15.equals(time16));System.out.println(time15.isAfter(time));System.out.println(time5.isBefore(time));}
}
LocalDateTime常用API

  
在这里插入图片描述
  

应用测试

package com.xie.time.local;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
/*** LocalDateTime API应用测试* */
public class LocalDateTimeTest {public static void main(String[] args) {/** 获取本地日期时间对象 */LocalDateTime dateTime = LocalDateTime.now();System.out.println(dateTime);// 1、可以获取日期和时间的全部信息int year = dateTime.getYear(); // 年int month = dateTime.getMonthValue(); // 月int day = dateTime.getDayOfMonth(); // 日int dayOfYear = dateTime.getDayOfYear(); // 一年中的第几天int dayOfWeek = dateTime.getDayOfWeek().getValue(); // 获取是周几int hour = dateTime.getHour(); //时int minute = dateTime.getMinute(); //分int second = dateTime.getSecond(); //秒int nano = dateTime.getNano(); //纳秒// 3、加多少:// plusYears plusMonths plusDays plusWeeks plusHours plusMinutes plusSeconds plusNanosLocalDateTime dateTime4 = dateTime.plusYears(2);LocalDateTime dateTime5 = dateTime.plusMinutes(3);// 4、减多少:// minusDays minusYears minusMonths minusWeeks minusHours minusMinutes minusSeconds minusNanosLocalDateTime dateTime6 = dateTime.minusYears(2);LocalDateTime dateTime7 = dateTime.minusMinutes(3);// 5、获取指定日期和时间的LocalDateTime对象:// public static LocalDateTime of(int year, Month month, int dayOfMonth, int hour,//                                int minute, int second, int nanoOfSecond)LocalDateTime dateTime8 = dateTime.of(2029, 12, 12, 12, 12, 12, 1222);LocalDateTime dateTime9 = dateTime.of(2029, 12, 12, 12, 12, 12, 1222);// 6、 判断2个日期、时间对象,是否相等,在前还是在后:equals、isBefore、isAfterSystem.out.println(dateTime9.equals(dateTime));System.out.println(dateTime9.isAfter(dateTime));System.out.println(dateTime9.isBefore(dateTime));// 7、可以把LocalDateTime 转换成 LocalDate 和 LocalTime// public LocalDate toLocalDate()// public LocalTime toLocalTime()// public static LocalDateTime of(LocalDate date, LocalTime time)System.out.println("================================");LocalDate date = dateTime.toLocalDate();LocalTime time = dateTime.toLocalTime();LocalDateTime dateTime2 = LocalDateTime.of(date, time);System.out.println(dateTime2 + "-->" + date + " && " +time);}
}
Zone开头的

  
在这里插入图片描述
  

应用测试

package com.xie.time.zone;import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;
/*** 目标:了解时区 和 带时区的时间* */
public class ZoneIdAndZonedDateTimeTest {public static void main(String[] args) {/** 获取系统默认时区 */ZoneId zoneId = ZoneId.systemDefault();System.out.println(zoneId.getId());System.out.println(zoneId);/** 获取Java支持的全部时区Id */System.out.println(ZoneId.getAvailableZoneIds().size());System.out.println(ZoneId.getAvailableZoneIds());/** 把某个时区id 封装成 ZoneId对象 */ZoneId zoneId1 = ZoneId.of("America/New_York");/** 获取某个时区的时间 即先获取ZonedDateTime对象 */ZonedDateTime zonedDateTime = ZonedDateTime.now(zoneId1);System.out.println(zonedDateTime);/** 获取世界标准时间 */System.out.println(ZonedDateTime.now(Clock.systemUTC()));/** 获取 系统 默认时区 的ZonedDateTime对象 */ZonedDateTime now = ZonedDateTime.now();System.out.println(now);}
}
Instant(某个时刻/时间戳)API

:可以用来记录代码的执行时间,或用于记录用户操作某个事件的时间点

  在这里插入图片描述  

应用测试

package com.xie.time;import java.time.Instant;
/*** 目标:掌握对Instant的使用* Instant:时间线上的某个时刻/时间戳* */
public class InstantTest {public static void main(String[] args) {/** 创建Instant对象,获取此刻的时间信息 */Instant instant = Instant.now();/** 获取总秒数 */long epochSecond = instant.getEpochSecond();System.out.println(epochSecond);/** 获取不够一秒的纳秒数 */System.out.println(instant.getNano());System.out.println(instant);/** 修改方法使用,示例,许多方法同LocalDateTime对象的 */Instant instant1 = instant.plusNanos(1111);System.out.println(instant1);System.out.println("================================================");// Instant对象的作用:做代码的性能分析,或者记录用户的操作时间点Instant instant2 = Instant.now();// 代码执行。。。Instant instant3 =Instant.now();}
}
DateTimeForMatter(时间格式化器)API

  
在这里插入图片描述

  
在这里插入图片描述
  
在这里插入图片描述
  

应用测试

package com.xie.time;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;/*** 格式化器* */
public class DateTimeForMatterTest {public static void main(String[] args) {/** 创建 一个 日期时间 格式化器 对象 */DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");/** 获取时间 */LocalDateTime localDateTime1 = LocalDateTime.now();System.out.println(localDateTime1);/** 对时间 进行格式化 正向格式化 */String format1 = dateTimeFormatter.format(localDateTime1);System.out.println(format1);/** 格式化另一种方案,用LocalDateTime对象的方法进行 我们称之为反向格式化,是相较于上面一种的 */String format2 = localDateTime1.format(dateTimeFormatter);System.out.println(format2);/** 解析时间: 解析时间一般使用LocalDateTime提供的解析方法来解析 */// 设置时间String dateStr = "2029年12月12日 12:12:11";LocalDateTime localDateTime2 = LocalDateTime.parse(dateStr, dateTimeFormatter);System.out.println(localDateTime2);}
}
Period常用API

  
在这里插入图片描述
  

应用测试

package com.xie.time;import java.time.LocalDate;
import java.time.Period;
/*** Period常用API的使用
* */
public class PeriodTest {public static void main(String[] args) {/**通过 指定时间 获取 两个日期对象*/LocalDate startTime = LocalDate.of(2029, 8, 10);LocalDate endTime = LocalDate.of(2035, 12, 20);/** 创建Period对象,封装两个时间点的 日期对象 */Period period = Period.between(startTime, endTime);/** 通过period对象 来获取 两个日期对象 相差的信息 */System.out.println("两者相差 " + period.getYears() + " 年");System.out.println("两者相差 " + period.getMonths() + " 月");System.out.println("两者相差 " + period.getDays() + " 日或天");}
}
Duration常用API

  
在这里插入图片描述
  

应用测试

package com.xie.time;import java.time.Duration;
import java.time.LocalDateTime;
/*** Duration常用API的使用* */
public class DurationTest {public static void main(String[] args) {/**通过 指定时间 获取 两个日期时间对象*/LocalDateTime startDateTime = LocalDateTime.of(2035, 8, 10, 0, 0, 0);LocalDateTime endDateTime = LocalDateTime.of(2035, 8, 15, 6, 5, 5);// 1、获取Duration对象Duration duration = Duration.between(startDateTime, endDateTime);// 2、获取两个日期时间对象的间隔信息System.out.println("两者相差 " + duration.toDays() + " 天");// 间隔多少天System.out.println("两者相差 " + duration.toHours() + " 小时");// 间隔多少小时System.out.println("两者相差 " + duration.toMinutes() + " 分");// 间隔多少分System.out.println("两者相差 " + duration.getSeconds() + " 秒");// 间隔名少秒System.out.println("两者相差 " + duration.toMillis() + " 毫秒");// 间隔多少毫秒System.out.println("两者相差 " + duration.toNanos() + " 纳秒");// 间隔多少纳秒}
}

拓展

时间格式符号

  
在这里插入图片描述
  

参考视频

黑马磊哥


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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

全志ARM926 Melis2.0系统的开发指引⑥

全志ARM926 Melis2.0系统的开发指引⑥ 编写目的9. 系统启动流程9.1. Shell 部分9.2.Orange 和 desktop 部分9.3. app_root 加载部分9.4. home 加载部分 10. 显示相关知识概述10.1. 总体结构10.2. 显示过程10.3. 显示宽高参数关系 -. 全志相关工具和资源-.1 全志固件镜像修改工具…

03.requests入门

1、requests概述 ​ 前面的课程中我们了解了requests模块是一个网络请求模块&#xff0c;可以帮助我们模拟成客户端去请求服 务器的数据。我们今天就是主要针对这个模块进行学习。 ​ 我们可以在浏览器中抓取到这些请求与响应的内容&#xff0c;那么我们可以“伪造”请求吗&a…

JavaEE-网络编程套接字(UDP/TCP)

下面写一个简单的UDP客户端服务器流程 思路&#xff1a; 对于服务器端&#xff1a;读取请求&#xff0c;并解析–> 根据解析出的请求&#xff0c;做出响应(这里是一个回显&#xff0c;)–>把响应写回客户端 对于客户端&#xff1a;从控制台读取用户输入的内容–>从控制…

Python综合案例:学生管理系统

目录 需求说明&#xff1a; 功能&#xff1a; 创建入口函数&#xff1a; 实现菜单函数&#xff1a; 实现增删查操作&#xff1a; 1. 新增学生 2. 展示学生 3. 查找学生 4. 删除学生 加入存档读档&#xff1a; 1. 约定存档格式 2. 实现存档函数 3. 实现读档函数 打…

RabbitMQ学习笔记(消息发布确认,死信队列,集群,交换机,持久化,生产者、消费者)

一、MQ基本介绍 MQ&#xff08;message queue&#xff09;&#xff1a;本质上是个队列&#xff0c;遵循FIFO原则&#xff0c;队列中存放的是message&#xff0c;是一种跨进程的通信机制&#xff0c;用于上下游传递消息。MQ提供“逻辑解耦物理解耦”的消息通信服务。使用了MQ之…

Ubuntu 22.04 安装Nvidia显卡驱动、CUDA、cudnn

GPU做深度学习比CPU要快很多倍&#xff0c;用Ubuntu跑也有一定的优势&#xff0c;但是安装Nvidia驱动有很多坑 Ubuntu版本&#xff1a;22.04.3 LTS 分区&#xff1a; /boot分配 1G &#xff0c;剩下都分给根目录/ 显卡&#xff1a;GTX 1050 Ti 坑1&#xff1a;用Ubuntu自带的 …

基于SpringBoot的车辆管理系统

目录 前言 一、技术栈 二、系统功能介绍 员工信息管理 证件信息管理 车辆信息管理 事故登记管理 事故登记 保养登记 违章登记 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实…

【小沐学前端】Windows下搭建WordPress(nginx1.25、PHP8.2、WordPress6.3、MySQL5.7)

文章目录 1、简介1.1 Nginx1.2 PHP1.3 WordPress1.4 MySQL 2、下载2.1 Nginx2.2 PHP2.3 WordPress2.4 MySQL 3、搭建环境3.1 Nginx3.2 PHP3.3 WordPress3.4 MySQL 4、配置WordPress4.1 选择语言4.2 配置数据库4.3 登录界面4.4 常规设置4.5 写作操作 结语 1、简介 WordPress是基…

SEO搜索引擎

利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名&#xff0c;吸引更多的用户访问网站&#xff0c;提高网站的访问量&#xff0c;提高网站的销售能力和宣传能力&#xff0c;从而提升网站的品牌效应 搜索引擎优化的技术手段 黑帽SEO 通过欺骗技术和滥用搜索算法来推销毫不…

WebPack-打包工具

从图中我们可以看出&#xff0c;Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件&#xff0c;减少了页面的请求. 下面举个例子 &#xff1a; main.js 我们只命名导出一个变量 export const name"老六"index.js import { name } from "./tset/…

VC6 WIN32,Dialog为主窗口编程

VC6是Microsoft非常经典的开发环境&#xff0c;尤其是Windows API方式开发&#xff0c;自从Quick C for win以来基本保持着同样的风格和API&#xff0c;在它上面做习练很不错。下面是习练完成的界面&#xff0c;它是在自动创建的WIN32 application模板下&#xff0c;增加一个Di…

怎么将Linux上的文件上传到github上

文章目录 1. 先在window浏览器中创建一个存储项目的仓库2. 复制你的ssh下的地址1) 生成ssh密钥 : 在Linux虚拟机的终端中,运行以下命令生成ssh密钥2)将ssh密钥添加到github账号 : 运行以下命令来获取公钥内容:3. 克隆GitHub存储库:在Linux虚拟机的终端中,导航到您想要将文件上…

ESP32设备驱动-I2C-LCD1602显示屏驱动

I2C-LCD1602显示屏驱动 1、LCD1602介绍 LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。 通过前面的实例我们知道,并口方式…

GPX可视化工具 GPX航迹预览工具

背景 当我们收到别人分享的航迹文档&#xff0c;即gpx文档时&#xff0c;如何快速的进行浏览呢&#xff1f;我们可以使用GIS软件来打开gpx文档并显示gpx中所记录的航迹&#xff0c;例如常用的GIS软件有googleEarth&#xff0c; Basecamp&#xff0c; GPXsee&#xff0c; GPX E…

Net相关的各类开源项目

Net相关的各类开源项目 WPFHandyControlLive-ChartsWPFDeveloperswpf-uidesignStylet WebScheduleMasterYiShaAdminBlog.CoreNebula.AdminNewLife.CubeOpenAuth UnityuGUIUnityCsReferenceEpitomeMyUnityFrameWorkKSFrameworkTowerDefense-GameFramework-Demo 通用ClientServer…

mac电脑任务管理器 Things3 for Mac中文

Things 3是一款效率软件&#xff0c;可以帮助用户规划一天行程、管理项目&#xff0c;并使使用者按部就班地朝目标迈进。以下是Things 3的主要特点和功能&#xff1a; 待办事项&#xff1a;以“待办事项”为基本组成部分&#xff0c;每一则待办事项都是迈向大成就的一小步。用…

C++stackqueue

目录 一、stack 1.1 简要介绍 1.2 小试身手 1.3 模拟实现 二、queue 2.1 简要介绍 2.2 小试身手 2.3 模拟实现 三、deque 3.1 简要介绍 3.2 分析底层 四、priority_queue 4.1 简要介绍 4.2 小试身手 4.3 模拟实现 五、仿函数/函数对象 5.1 简要介绍 一…

优化方法的应用(optimtool.example)

import optimtool as oo from optimtool.base import np, sp, pltpip install optimtool>2.4.2优化方法的应用&#xff08;optimtool.example&#xff09; import optimtool.example as oeLasso问题&#xff08;Lasso&#xff09; oe.Lasso.[函数名]([矩阵A], [矩阵b], [因…

模型训练环境相关(CUDA、PyTorch)

模型训练环境相关&#xff08;CUDA、PyTorch&#xff09; 1. 查看当前 GPU 所能支持的最高版本的 CUDA2. 如何判断是否安装了 CUDA3. 安装 PyTorch3.1 创建虚拟环境3.2 激活并进入虚拟环境3.3 安装 PyTorch 1. 查看当前 GPU 所能支持的最高版本的 CUDA 打开 NVIDIA 控制面板&a…

Android学习之路(20) 进程间通信

IPC IPC为 (Inter-Process Communication) 缩写&#xff0c;称为进程间通信或跨进程通信&#xff0c;指两个进程间进行数据交换的过程。安卓中主要采用 Binder 进行进程间通信&#xff0c;当然也支持其他 IPC 方式&#xff0c;如&#xff1a;管道&#xff0c;Socket&#xff0…