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

Java基础篇--日期时间类

目录

前言

Instant(时间戳)类

LocalData(日期)类

LocalTime(时间)类

LocalDataTime(日期时间)类

Duration(时间间隔)类

Period(日期间隔)类

Clock(获取时区)类


前言

在开发中经常需要处理日期和时间,Java提供了一套专门用于处理日期时间的API,在日期时间类中了包含LocalDate类、LocalTime类、Instant类、Duration类以及Period类等,这些类都包含在java.time包中。

类的名称

功能描述

Instant

表示时刻,代表的是时间戳

LocalDate

不包含具体时间的日期

LocalTime

不含日期的时间

LocalDateTime

包含了日期及时间

Duration

基于时间的值测量时间量

Period

计算日期时间差异,只能精确到年月日

Clock

时钟系统,用于查找当前时刻

Instant(时间戳)类

Instant 类代表的是某个时间。其内部是由两个Long字段组成,

  • 第一部分是保存自标准Java计算时代(即1970年1月1日开始)至当前时间的秒数,即时间戳(Timestamp)。该时间戳表示从参考时间点开始经过的秒数。

  • 第二部分是保存纳秒数。纳秒是时间的更精细单位,表示每秒钟的十亿分之一。

常用方法

  • now():使用系统时钟获取当前瞬时。
  • now(Clock clock):使用指定时钟获取当前瞬时。
  • ofEpochSecond(long epochSecond):使用自标准Java计算时代开始的秒数获得一个Instant实例。
  • ofEpochMilli(long epochMilli):使用自标准Java计算时代开始的毫秒数获得一个Instant实例。
  • getEpochSecond():获取时间戳的秒数部分。
  • getNano():获取时间戳的纳秒数部分。
  • parse(CharSequence text):将表示时间的字符串转换为对应的Instant对象。
  • from(TemporalAccessor tenporal):从时间对象获取一个Instant的实例。
  • plusSeconds(long seconds) 和 plusMillis(long millis):在时间戳的基础上增加指定的秒数或毫秒数。
  • minusSeconds() 和 minusMillis():在时间戳的基础上减去指定的秒数或毫秒数。
  • isBefore() 和 isAfter() 方法:比较两个时间戳的先后顺序。

示例代码:

import java.time.Clock;
import java.time.Instant;public class InstantExample {public static void main(String[] args) {// 获取当前时间的瞬时实例Instant now = Instant.now();System.out.println("当前时间:" + now);// 使用指定时钟获取当前时间的瞬时实例Clock clock = Clock.systemUTC();Instant nowWithClock = Instant.now(clock);System.out.println("当前时间(使用指定时钟):" + nowWithClock);// 使用从自标准Java计算时代开始的秒数创建Instant实例        Instant epochSecondInstant = Instant.ofEpochSecond(1234567890);System.out.println("自1970年1月1日起的秒数对应的时间:" + epochSecondInstant);// 使用从自标准Java计算时代开始的毫秒数创建Instant实例Instant epochMilliInstant = Instant.ofEpochMilli(1627368000000L);System.out.println("自1970年1月1日起的毫秒数对应的时间:" + epochMilliInstant);// 获取时间戳的秒数部分long seconds = now.getEpochSecond();System.out.println("时间戳的秒数部分:" + seconds);// 获取时间戳的纳秒数部分int nanos = now.getNano();System.out.println("时间戳的纳秒数部分:" + nanos);// 将表示时间的字符串转换为Instant对象String timeString = "2023-08-14T10:30:00Z";Instant parsedInstant = Instant.parse(timeString);System.out.println("解析后的时间:" + parsedInstant);// 在时间戳的基础上增加指定的秒数或毫秒数Instant plusSecondsInstant = now.plusSeconds(3600);Instant plusMillisInstant = now.plusMillis(1000);System.out.println("增加1小时后的时间:" + plusSecondsInstant);System.out.println("增加1秒后的时间:" + plusMillisInstant);// 在时间戳的基础上减去指定的秒数或毫秒数Instant minusSecondsInstant = now.minusSeconds(1800);Instant minusMillisInstant = now.minusMillis(500);System.out.println("减去30分钟后的时间:" + minusSecondsInstant);System.out.println("减去0.5秒后的时间:" + minusMillisInstant);// 比较两个时间戳的先后顺序Instant earlierInstant = Instant.parse("2023-08-14T09:00:00Z");Instant laterInstant = Instant.parse("2023-08-14T11:00:00Z");boolean isBefore = earlierInstant.isBefore(laterInstant);boolean isAfter = earlierInstant.isAfter(laterInstant);System.out.println("earlierInstant是否在laterInstant之前:" + isBefore);System.out.println("earlierInstant是否在laterInstant之后:" + isAfter);}
}

运行结果:

当前时间:2023-08-14T09:41:00.027378100Z
当前时间(使用指定时钟):2023-08-14T09:41:00.037343Z
自1970年1月1日起的秒数对应的时间:2009-02-13T23:31:30Z
自1970年1月1日起的毫秒数对应的时间:2021-07-27T06:40:00Z
时间戳的秒数部分:1692006060
时间戳的纳秒数部分:27378100
解析后的时间:2023-08-14T10:30:00Z
增加1小时后的时间:2023-08-14T10:41:00.027378100Z
增加1秒后的时间:2023-08-14T09:41:01.027378100Z
减去30分钟后的时间:2023-08-14T09:11:00.027378100Z
减去0.5秒后的时间:2023-08-14T09:40:59.527378100Z
earlierInstant是否在laterInstant之前:true
earlierInstant是否在laterInstant之后:false

LocalData(日期)类

LocalData类是Java 8引入的日期类,用于表示日期(年、月、日)信息。该类具有以下方法:

  1. now():这是一个静态方法,返回表示当前日期的LocalDate对象。例如,LocalDate.now()将返回表示今天日期的对象。
  2. of(int year, int month, int dayOfMonth):这是另一个静态方法,通过指定年、月、日创建LocalDate对象。参数year表示年份,month表示月份(1到12之间),dayOfMonth表示月份中的某一天。
  3. format(DateTimeFormatter formatter):该方法可将LocalDate对象按照指定的格式转换为字符串表示。需要传入一个DateTimeFormatter对象,可以使用预定义的格式或自定义格式。例如,date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))将返回带有“年-月-日”格式的日期字符串。
  4. plusYears(long years) / minusYears(long years):这些方法用于在现有的LocalDate对象上增加或减少指定的年数。参数years表示要增加或减少的年数。
  5. plusMonths(long months) / minusMonths(long months):与上述方法类似,这些方法用于在现有的LocalDate对象上增加或减少指定的月数。
  6. plusDays(long days) / minusDays(long days):这些方法用于在现有的LocalDate对象上增加或减少指定的天数。
  7. isBefore(LocalDate other) / isAfter(LocalDate other):这两个方法用于比较两个LocalDate对象的先后顺序。isBefore()方法返回一个布尔值,表示该日期是否在参数日期之前;isAfter()方法返回一个布尔值,表示该日期是否在参数日期之后。
  8. getYear() / getMonthValue() / getDayOfMonth():这些方法用于获取LocalDate对象的年、月、日信息。
  9. isLeapYear():用于判断指定年份是否为闰年。

示例代码:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;public class myclass {public static void main(String[] args) {// 获取当前日期LocalDate currentDate = LocalDate.now();System.out.println("当前日期:" + currentDate);// 创建指定日期LocalDate customDate = LocalDate.of(2023, 8, 14);System.out.println("自定义日期:" + customDate);// 格式化日期为字符串String formattedDate = customDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));System.out.println("格式化后的日期:" + formattedDate);// 增减年份LocalDate futureDate = customDate.plusYears(2);System.out.println("增加两年后的日期:" + futureDate);// 判断日期先后boolean isBefore = customDate.isBefore(currentDate);boolean isAfter = customDate.isAfter(currentDate);System.out.println("自定义日期是否在当前日期之前:" + isBefore);System.out.println("自定义日期是否在当前日期之后:" + isAfter);// 获取年、月、日int year = customDate.getYear();int month = customDate.getMonthValue();int dayOfMonth = customDate.getDayOfMonth();System.out.println("年:" + year);System.out.println("月:" + month);System.out.println("日:" + dayOfMonth);// 判断闰年boolean isLeapYear = customDate.isLeapYear();System.out.println("自定义日期所在年份是否为闰年:" + isLeapYear);}
}

运行结果:

当前日期:2023-08-14
自定义日期:2023-08-14
格式化后的日期:2023-08-14
增加两年后的日期:2025-08-14
自定义日期是否在当前日期之前:false
自定义日期是否在当前日期之后:false
年:2023
月:8
日:14
自定义日期所在年份是否为闰年:false

LocalTime(时间)

LocalTime类用来表示时间,通常表示的是小时分钟秒。与LocalData类一样,该类不能代表时间线上的即时信息,只是时间的描述。在LocalTime类中提供了获取时间对象的方法,与LocalData用法类似。

同时LocalTime类也提供了与日期类相对应的时间格式化、增减时分秒等常用方法,这些方法与LocalData(日期)类相对应,这里我们不再详细列举。

示例代码:

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;public class LocalTimeExample {public static void main(String[] args) {// 获取当前时间LocalTime currentTime = LocalTime.now();System.out.println("当前时间:" + currentTime);// 创建指定时间LocalTime customTime = LocalTime.of(12, 30, 45);System.out.println("自定义时间:" + customTime);// 格式化时间为字符串String formattedTime = customTime.format(DateTimeFormatter.ofPattern("HH:mm:ss"));System.out.println("格式化后的时间:" + formattedTime);// 增减小时数LocalTime futureTime = customTime.plusHours(2);System.out.println("增加两小时后的时间:" + futureTime);// 判断时间先后boolean isBefore = customTime.isBefore(currentTime);boolean isAfter = customTime.isAfter(currentTime);System.out.println("自定义时间是否在当前时间之前:" + isBefore);System.out.println("自定义时间是否在当前时间之后:" + isAfter);// 获取小时、分钟、秒int hour = customTime.getHour();int minute = customTime.getMinute();int second = customTime.getSecond();System.out.println("小时:" + hour);System.out.println("分钟:" + minute);System.out.println("秒:" + second);}
}

运行结果:

当前时间:18:04:40.272290700
自定义时间:12:30:45
格式化后的时间:12:30:45
增加两小时后的时间:14:30:45
自定义时间是否在当前时间之前:true
自定义时间是否在当前时间之后:false
小时:12
分钟:30
秒:45

LocalDataTime(日期时间)类

LocalDataTime类是日期(LocalDate)类与时间(LocalTime)类的综合,它即包含日期也包含时间,通过查看API可以知道,LocalDataTime类中的方法包含了LocalData类与LocalTime类的方法。

需要注意的是,LocalDateTime默认的格式是 2020-02-29T21:23:26.774,这可能与我们经常使用的格式不太符合,所以它经常和DateTimeFormatter一起使用指定格式,除了LocalData与LocalTime类中的方法,额外提供了转换的方法。

以下是一些LocalDateTime类常用的方法:

  1. now():静态方法,返回当前日期和时间的LocalDateTime对象。
  2. of(int year, int month, int dayOfMonth, int hour, int minute) / of(int year, int month, int dayOfMonth, int hour, int minute, int second):静态方法,通过指定年、月、日、小时、分钟以及秒数(可选)创建LocalDateTime对象。
  3. parse(CharSequence text):静态方法,将字符串解析为LocalDateTime对象。
  4. format(DateTimeFormatter formatter):将LocalDateTime对象按照指定格式转换为字符串表示。
  5. toLocalDate():获取LocalDateTime对象的日期部分,返回LocalDate对象。
  6. toLocalTime():获取LocalDateTime对象的时间部分,返回LocalTime对象。
  7. plusYears(long years) / minusYears(long years):在现有的LocalDateTime对象上增加或减少指定年数。
  8. plusMonths(long months) / minusMonths(long months):在现有的LocalDateTime对象上增加或减少指定月数。
  9. plusDays(long days) / minusDays(long days):在现有的LocalDateTime对象上增加或减少指定天数。
  10. plusHours(long hours) / minusHours(long hours):在现有的LocalDateTime对象上增加或减少指定小时数。
  11. plusMinutes(long minutes) / minusMinutes(long minutes):在现有的LocalDateTime对象上增加或减少指定分钟数。
  12. plusSeconds(long seconds) / minusSeconds(long seconds):在现有的LocalDateTime对象上增加或减少指定秒数。
  13. getYear() / getMonthValue() / getDayOfMonth():获取LocalDateTime对象的年、月、日信息。

示例代码: 

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;public class myclass {public static void main(String[] args) {// 获取当前日期和时间LocalDateTime currentDateTime = LocalDateTime.now();System.out.println("当前日期和时间:" + currentDateTime);// 创建指定的日期和时间LocalDateTime customDateTime = LocalDateTime.of(2023, 8, 14, 12, 30);System.out.println("自定义日期和时间:" + customDateTime);// 格式化日期时间为字符串String formattedDateTime = customDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));System.out.println("格式化后的日期和时间:" + formattedDateTime);// 增减年数、月数、天数、小时数、分钟数、秒数LocalDateTime futureDateTime = customDateTime.plusYears(1).minusMonths(2).plusDays(15).minusHours(3).plusMinutes(10).plusSeconds(30);System.out.println("操作后的日期和时间:" + futureDateTime);// 获取日期和时间部分LocalDate datePart = customDateTime.toLocalDate();LocalTime timePart = customDateTime.toLocalTime();System.out.println("日期部分:" + datePart);System.out.println("时间部分:" + timePart);// 获取年、月、日信息int year = customDateTime.getYear();int month = customDateTime.getMonthValue();int dayOfMonth = customDateTime.getDayOfMonth();System.out.println("年:" + year);System.out.println("月:" + month);System.out.println("日:" + dayOfMonth);}
}

运行结果:

当前日期和时间:2023-08-14T18:09:24.472147600
自定义日期和时间:2023-08-14T12:30
格式化后的日期和时间:2023-08-14 12:30:00
操作后的日期和时间:2024-06-29T09:40:30
日期部分:2023-08-14
时间部分:12:30
年:2023
月:8
日:14

Duration(时间间隔)类

Duration类是Java 8引入的一个用于表示时间间隔的类。它可用于计算两个时间点之间的差异,以及在不同单位(如秒、分钟、小时等)之间进行转换。

以下是一些Duration类常用的方法:

  1. ofDays(long days) / ofHours(long hours) / ofMinutes(long minutes):静态方法,创建一个持续时间,表示指定的天数、小时数或分钟数。
  2. ofSeconds(long seconds) / ofMillis(long milliseconds) / ofNanos(long nanos):静态方法,创建一个持续时间,表示指定的秒数、毫秒数或纳秒数。
  3. between(Temporal startInclusive, Temporal endExclusive):静态方法,创建一个持续时间,表示从起始时间到结束时间之间的差异。
  4. plus(Duration duration) / minus(Duration duration):在现有的Duration对象上增加或减少另一个Duration对象的持续时间。
  5. toDays() / toHours() / toMinutes():将持续时间转换为对应的天数、小时数或分钟数。
  6. toSeconds() / toMillis() / toNanos():将持续时间转换为对应的秒数、毫秒数或纳秒数。
  7. getSeconds() / getNano():获取持续时间中的秒数和纳秒数。
  8. isNegative() / isZero():判断持续时间是否为负值或零值。

示例代码:  

import java.time.Duration;public class myclass {public static void main(String[] args) {// 创建一个持续时间,表示5小时30分钟15秒Duration duration1 = Duration.ofHours(5).plusMinutes(30).plusSeconds(15);System.out.println("Duration 1: " + duration1); // 输出:PT5H30M15S// 创建一个持续时间,表示1分钟Duration duration2 = Duration.ofMinutes(1);System.out.println("Duration 2: " + duration2); // 输出:PT1M// 计算两个持续时间之间的差异Duration difference = duration1.minus(duration2);System.out.println("Difference: " + difference); // 输出:PT5H29M15S// 获取持续时间的小时数、分钟数和秒数long hours = difference.toHours();long minutes = difference.toMinutesPart();long seconds = difference.toSecondsPart();System.out.println("Hours: " + hours); // 输出:5System.out.println("Minutes: " + minutes); // 输出:29System.out.println("Seconds: " + seconds); // 输出:15// 判断持续时间是否为负值或零值boolean isNegative = difference.isNegative();boolean isZero = difference.isZero();System.out.println("是负的? " + isNegative); // 输出:falseSystem.out.println("是零吗? " + isZero); // 输出:false}
}

Period(日期间隔)类

 Period主要用于计算两个日期的间隔,与Duration相同,也是通过between计算日期间隔,并提供了获取年月日的三个常用方法,分别是 getYears()、getMonths()和getDays()。

示例代码:  

import java.time.LocalDate;
import java.time.Period;public class myclass {public static void main(String[] args) {// 创建两个日期LocalDate startDate = LocalDate.of(2023, 1, 1);LocalDate endDate = LocalDate.of(2023, 4, 30);// 计算日期之间的差异Period period = Period.between(startDate, endDate);System.out.println("日期间隔: " + period); // 输出:P3M29D// 获取年、月、日的差异int years = period.getYears();int months = period.getMonths();int days = period.getDays();System.out.println("年: " + years); // 输出:0System.out.println("月: " + months); // 输出:3System.out.println("日: " + days); // 输出:29// 添加日期间隔到指定日期LocalDate newDate = startDate.plus(period);System.out.println("新日期: " + newDate); // 输出:2023-04-30// 判断日期间隔是否为负值或零值boolean isNegative = period.isNegative();boolean isZero = period.isZero();System.out.println("是否为负值? " + isNegative); // 输出:falseSystem.out.println("是否为零值? " + isZero); // 输出:false}
}

Clock(获取时区)类

Clock类是Java中用于获取当前时间、日期和时区信息的抽象类。它提供了一种通用的方式来访问系统时钟,并以不同的时区获取当前时间。

  1. systemDefaultZone():静态方法,返回使用系统默认时区的系统时钟。
  2. systemUTC():静态方法,返回使用协调世界时(UTC)的系统时钟。
  3. tick(Clock fixedClock, Duration tickDuration):静态方法,返回一个包装了指定时钟的"滴答"时钟,每次前进指定的时长。
  4. fixed(Instant fixedInstant, ZoneId zone):静态方法,返回一个固定的时钟,始终返回指定的瞬间和时区。
  5. offset(Clock baseClock, Duration offsetDuration):静态方法,返回一个相对于基准时钟偏移指定持续时间的时钟。
  6. millis():实例方法,返回从1970年1月1日午夜开始的毫秒数。
  7. instant():实例方法,返回当前时钟的当前瞬间。
  8. getZone():实例方法,返回时钟的时区信息。

示例代码:   

import java.time.Clock;
import java.time.Duration;
import java.time.Instant;
import java.time.ZoneId;public class myclass {public static void main(String[] args) {// 获取系统默认时区的时钟Clock systemDefaultClock = Clock.systemDefaultZone();System.out.println("系统默认时钟:" + systemDefaultClock);// 获取使用协调世界时(UTC)的系统时钟Clock systemUTCClock = Clock.systemUTC();System.out.println("系统UTC时钟:" + systemUTCClock);// 创建一个滴答时钟,每次前进1秒钟Clock tickClock = Clock.tick(systemDefaultClock, Duration.ofSeconds(1));System.out.println("滴答时钟:" + tickClock);// 创建一个固定的时钟,始终返回指定的瞬间和时区Instant fixedInstant = Instant.parse("2022-01-01T00:00:00Z");ZoneId fixedZone = ZoneId.of("Asia/Shanghai");//亚洲/上海Clock fixedClock = Clock.fixed(fixedInstant, fixedZone);System.out.println("固定时钟:" + fixedClock);// 创建一个相对于基准时钟偏移10秒钟的时钟Clock baseClock = Clock.systemDefaultZone();Duration offsetDuration = Duration.ofSeconds(10);Clock offsetClock = Clock.offset(baseClock, offsetDuration);System.out.println("偏移时钟:" + offsetClock);// 获取当前时钟的毫秒数long millis = systemDefaultClock.millis();System.out.println("毫秒数:" + millis);// 获取当前时钟的当前瞬间Instant instant = systemDefaultClock.instant();System.out.println("当前瞬间:" + instant);// 获取当前时钟的时区信息ZoneId zone = systemDefaultClock.getZone();System.out.println("时区:" + zone);}
}

相关文章:

Java基础篇--日期时间类

目录 前言 Instant(时间戳)类 LocalData(日期)类 LocalTime(时间)类 LocalDataTime(日期时间)类 Duration(时间间隔)类 Period(日期间隔)类 Clock(获取时区)类 前言 在开发中经常需要处理日期和时间,Java提供…...

Vue生命周期函数 详解

以下是Vue生命周期函数的流程图和每个周期的代码详解: 流程图: beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated -> beforeDestroy -> destroyed详解: beforeCreate: 触发时…...

判断链表有环的证明

目录 1.问题 2.证明 3.代码实现 1.问题 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用…...

百度屏蔽词有哪些?其中就有移民关键词指数被屏蔽?

我是百收网SEO,点点上面的头像,欢迎关注我哦! 今日tombkeeper消息爆料:百度指数已经屏蔽“移民”等关键词指数。 大家好,我是百收网SEO商学院的狂潮微课老师,今天我们来讲解第 12 节课关键词优化难度分析…...

代码随想录day02

977.有序数组的平方 ● 力扣题目链接 ● 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 思路 ● 暴力排序,时间复杂度O(n nlogn) ● 使用双指针,时间复杂度O(n) …...

VR时代真的到来了?

业界对苹果的期待是,打造一台真正颠覆性的,给头显设备奠定发展逻辑底座的产品,而实际上,苹果只是发布了一台更强大的头显。 大众希望苹果回答的问题是“我为什么需要一台AR或者VR产品?”,但苹果回答的是“…...

docker run 命令转化为 docker-compose 工具

工作当中需要将 docker run 转换为更方便的 docker-compose 格式,可以使用下面的工具来完成。 转换工具:https://www.composerize.com/?utm_sourceappinn.com 使用介绍:https://www.appinn.com/composerize-for-docker-compose/...

php如何对接伪原创api

在了解伪原创api的各种应用形态之后,我们继续探讨智能写作背后的核心技术。需要说明的是,智能写作和自然语言生成、自然语言理解、知识图谱、多模算法等各类人工智能算法都有紧密的关联,在百度的智能写作实践中,常根据实际需求将多…...

设计模式行为型——模板模式

目录 模板模式的定义 模板模式的实现 模板模式角色 模板模式类图 模板模式举例 模板模式代码实现 模板模式的特点 优点 缺点 使用场景 注意事项 实际应用 模板模式的定义 模板模式(Template Pattern)属于行为型设计模式,又叫模版…...

12.Eclipse导入Javaweb项目

同事复制一份他的项目给我ekp.rar (懒得从SVN上拉取代码了)放在workspace1目录下 新建一个文件夹 workspace2,Eclipse切换到workspace2工作空间 选择Import导入 选择导入的项目(这里是放到workspace1里面) 拷贝一份到workspace2里面 例子 所有不是在自己电脑上开发…...

探索自动化网页交互的魔力:学习 Selenium 之旅【超详细】

"在当今数字化的世界中,网页自动化已经成为了不可或缺的技能。想象一下,您可以通过编写代码,让浏览器自动执行各种操作,从点击按钮到填写表单,从网页抓取数据到进行自动化测试。学习 Selenium,这一功能…...

css常用样式和不常用样式

文章目录 1、hover鼠标变小手2、ul去除点3、文字溢出显示省略号(1)一行文字溢出显示省略号(2)多行文字溢出显示省略号 4、文字单词超出(1)文字单词超出换行(word-wrap)(2…...

【小练习】交互式网格自定义增删改错误记录及解决(进行中)

经过之前的学习,已经能创建简单的交互式网格并设置自定义增删改按钮,但是实现上还是存在一些问题,来完善优化一下。 首先是修改,正常修改都会弹出修改框,里面是之前存储的信息,根据实际需要对其进行修改&a…...

云渲染效果不对?云渲染前的四个细节表明你的问题出在这里!

云渲染针对3D渲染行业,帮助本地电脑解决渲染慢的问题,大幅提高设计师的工作效率。但小编发现,有不少小伙伴在使用云渲染时,出现了渲染效果不对或丢失的问题,根据小伙伴们的问题和我们创意云云渲染平台给出的解决方案&a…...

翻转二叉树

声明 该系列文章仅仅展示个人的解题思路和分析过程,并非一定是优质题解,重要的是通过分析和解决问题能让我们逐渐熟练和成长,从新手到大佬离不开一个磨练的过程,加油! 原题链接 翻转二叉树备战技术面试?…...

检测新突破 | AlignDet:支持各类检测器自监督新框架(ICCV2023)

引言 论文链接:https://arxiv.org/abs/2307.11077 项目地址:https://github.com/liming-ai/AlignDet 这篇论文主要研究目标检测领域的自监督预训练方法。作者首先指出,当前主流的预训练-微调框架在预训练和微调阶段存在数据、模型和任务上的…...

03.Show and Tell

目录 前言泛读摘要IntroductionRelated Work小结 精读模型基于LSTM的句子生成器TrainingInference 实验评价标准数据集训练细节分数结果生成结果多样性讨论排名结果人工评价结果表征分析 结论 代码 前言 本课程来自深度之眼《多模态》训练营,部分截图来自课程视频。…...

QStackedWidget 的使用

QStackedWidget QStackedWidget 提供一些层叠的 Widget,同一时间只有一个Widget处于可视状态,就像书本一样。 什么时候使用 QStackedWidget 强烈建议 如果需要点击一个按钮显示一些界面再点击按钮隐藏当前界面而去显示另外的界面时。都使用 QStackedW…...

大数据--难点--地图的制作

地图一直是亮点也是难点,刚刚进公司的时候也很难懂~~做出来的也很难看 纯CSS3使用vw和vh视口单位实现h5页面自适应,gulp自动监听sass改动并保存到css中 当修改了sass里面的代码后,gulp会自动监听修改内容并同名保存到css文件夹中&#xff0…...

【AI作画】使用Stable Diffusion的艺术二维码完全生成攻略

文章目录 前言Stable Diffusion 简介 什么是云端平台?优势灵活性和可扩展性成本效益高可用性和容错性管理简便性 选择适合的云端平台 平台优势平台操作购买算力并创建工作空间启动工作空间应用市场一键安装 使用Stable-Diffusion作图使用控制网络将文本转图像二维码…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

生成 Git SSH 证书

🔑 1. ​​生成 SSH 密钥对​​ 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​: -t rsa&#x…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键&#xff…...

Web后端基础(基础知识)

BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...