Python常用日期函数和日期处理方法

Python常用日期函数和日期处理方法

Python常用的日期处理函数使用案例, 和一些简单的日期处理方法(持续更新)

1. 使用time获取当前的日期和时间
import time
from time import gmtime, strftimet = time.localtime()
print (t) 
# time.struct_time(tm_year=2024, tm_mon=1, tm_mday=4, tm_hour=11, tm_min=21, tm_sec=34, tm_wday=3, tm_yday=4, tm_isdst=0)
print (time.asctime(t)) # Thu Jan  4 11:21:34 2024
print (gmtime()) 
# time.struct_time(tm_year=2024, tm_mon=1, tm_mday=4, tm_hour=3, tm_min=21, tm_sec=34, tm_wday=3, tm_yday=4, tm_isdst=0)
print (strftime("%a, %d, %b, %Y, %H:%M:%S", gmtime())) # Thu, 04, Jan, 2024, 03:21:34
print (strftime("%a", gmtime()))    # 周   		# Thu
print (strftime("%A", gmtime()))    # 周   		# Thursday
print (strftime("%d", gmtime()))    # 日   		# 04
print (strftime("%D", gmtime()))    # 日   		# 01/04/24
print (strftime("%b", gmtime()))    # 月   		# Jan
print (strftime("%B", gmtime()))    # 月   		# January
print (strftime("%y", gmtime()))    # 年   		# 24
print (strftime("%Y", gmtime()))    # 年   		# 2024
print (strftime("%H", gmtime()))    # 小时(24)	# 03
print (strftime("%I", gmtime()))    # 小时(12)	# 03
print (strftime("%M", gmtime()))    # 分钟   	    # 21
print (strftime("%s", gmtime()))    # 时间戳      # 1704309694
print (strftime("%S", gmtime()))    # 秒   		# 34
print (strftime("%j", gmtime()))    # 一年第几天   # 004
print (strftime("%U", gmtime()))    # 一年第几周   # 00
print (strftime("%W", gmtime()))    # 一年第几周   # 01
print ("**************************")
print (time.localtime())
# time.struct_time(tm_year=2024, tm_mon=1, tm_mday=4, tm_hour=11, tm_min=31, tm_sec=34, tm_wday=3, tm_yday=4, tm_isdst=0)
print (strftime("%a", time.localtime()))    # 周   # Thu
print (strftime("%A", time.localtime()))    # 周   # Thursday
print (strftime("%d", time.localtime()))    # 日   # 04
print (strftime("%D", time.localtime()))    # 日   # 01/04/24
print (strftime("%b", time.localtime()))    # 月   # Jan
print (strftime("%B", time.localtime()))    # 月   # January
print (strftime("%y", time.localtime()))    # 年   # 24
print (strftime("%Y", time.localtime()))    # 年   # 2024
print (strftime("%H", time.localtime()))    # 小时(24)   # 11
print (strftime("%I", time.localtime()))    # 小时(12)   # 11
print (strftime("%M", time.localtime()))    # 分钟   # 31
print (strftime("%s", time.localtime()))    # 时间戳   # 1704339094
print (strftime("%S", time.localtime()))    # 秒   # 34
print (strftime("%j", time.localtime()))    # 一年第几天   # 004
print (strftime("%U", time.localtime()))    # 一年第几周   # 00
print (strftime("%W", time.localtime()))    # 一年第几周   # 01# 将时间戳转换为日期格式
print (strftime("%Y-%m-%d %H:%M:%S", gmtime(1704339094))) # 2024-01-04 03:31:34
print (strftime("%Y-%m-%d %H:%M:%S", time.localtime(1704339094))) # 2024-01-04 11:31:34
gmtime() 函数用于获取当前时间的格林威治标准时间(GMT)的表示形式。它返回一个 time.struct_time 对象,该对象包含了当前时间的年、月、日、时、分、秒、一周中的哪一天以及夏令时标志等信息。这个表示形式与标准的日期和时间格式相同,但表示的是标准时区的时刻。在 Python 中,gmtime() 常用于获取时间信息并进行分析和处理。%a: 星期几的缩写,例如:"Mon" 表示星期一。
%A: 星期几的全名,例如:"Monday" 表示星期一。
%b: 月份的缩写,例如:"Jan" 代表一月。
%B: 月份的全名,例如:"January" 代表一月。
%d: 月份中的日期,以两位数的形式显示,例如:"01""31"。
%D: 日期的简写形式,等同于 "%m/%d/%y"。
%Y: 四位数的年份,例如:"2024"。
%y: 两位数的年份,例如:"24"。
%H: 小时(24小时制),例如:"00""23"。
%I: 小时(12小时制),例如:"01""12"。
%M: 分钟,例如:"00""59"。
%S: 秒数,例如:"00""59"。
%s: 从 Epoch(1970年1月1日)以来的秒数。
%j: 年份中的一天,例如:"001""366"。
%U: 年份中的周数(周日作为一周的开始),例如:"00""53"。
%W: 年份中的周数(周一作为一周的开始),例如:"00""53"
2. 使用Panda获取当前的日期和时间
import pandas as pdprint (pd.datetime.now())              # 2024-01-04 12:10:08.095149
print (pd.datetime.now().hour)         # 12
print (pd.datetime.now().minute)       # 10    
print (pd.datetime.now().second)       # 8    
print (pd.datetime.now().year)         # 2024
print (pd.datetime.now().month)        # 1
print (pd.datetime.now().day)          # 4
print (pd.datetime.now().microsecond)  # 95826    
print (pd.datetime.now().date())       # 2024-01-04    
hour:当前时间的小时数
minute:当前时间的分钟数
second:当前时间的秒数
year:当前时间的年数
month:当前时间的月数
day:当前时间的日数
microsecond:当前时间的微秒数
3. 将字符串日期, 转化为日期时间对象
from datetime import datetime
from dateutil import parserdate1 = "2024-01-01 12:02:16"
date2 = "2024/01/01 12:02:16"
date3 = "Jan 01 2024 12:02:16"
date4 = "2024 Jan 01 2:02:16PM"# 已知日期格式
date_1 = datetime.strptime(date1, "%Y-%m-%d %H:%M:%S")
print(type(date_1)) # <class 'datetime.datetime'>
print(date_1) # 2024-01-01 12:02:16date_2 = datetime.strptime(date2, "%Y/%m/%d %H:%M:%S")
print(type(date_2)) # <class 'datetime.datetime'>
print(date_2) # 2024-01-01 12:02:16date_3 = datetime.strptime(date3, "%b %d %Y %H:%M:%S")
print(type(date_3)) # <class 'datetime.datetime'>
print(date_3) # 2024-01-01 12:02:16date_4 = datetime.strptime(date4, "%Y %b %d %I:%M:%S%p")
print(type(date_4)) # <class 'datetime.datetime'>
print(date_4) # 2024-01-01 14:02:16# 日期格式未知
date_1_1 = parser.parse(date1)
print(type(date_1_1)) # <class 'datetime.datetime'>
print(date_1_1) # 2024-01-01 12:02:16date_2_2 = parser.parse(date2)
print(type(date_2_2)) # <class 'datetime.datetime'>
print(date_2_2) # 2024-01-01 12:02:16date_3_3 = parser.parse(date3)
print(type(date_3_3)) # <class 'datetime.datetime'>
print(date_3_3) # 2024-01-01 12:02:16date_4_4 = parser.parse(date4)
print(type(date_4_4)) # <class 'datetime.datetime'>
print(date_4_4) # 2024-01-01 14:02:16# 定义两个时间戳日期
date_5_1 = 1704339094
date_5_2 = 1704791254
# 将时间戳转换为日期
time1 = datetime.fromtimestamp(date_5_1)
time2 = datetime.fromtimestamp(date_5_2)
print(time1)  # 2024-01-04 11:31:34
print(time2)  # 2024-01-09 17:07:34
在Python中,你可以使用 datetime.strptime() 和 parser.parse() 两种方法将字符串转换为日期格式。
datetime.strptime() 方法属于 datetime 模块,用于根据指定的格式将字符串解析为日期对象。
parser.parse() 方法属于 dateutil.parser 模块,它可以更灵活地解析各种日期字符串,因为它能够自动识别多种日期格式。
datetime.strptime() 需要显式指定日期格式,而 parser.parse() 则更灵活,能够处理多种日期字符串格式。选择使用哪种方法取决于你的需求和输入数据的多样性。
4. 获取当前时间戳(13位,毫秒)
from datetime import datetime
import time# 1.使用 datetime 模块# 获取当前时间
now_time = datetime.now()
# 转换为13位时间戳
timestamp = int(now_time.timestamp() * 1000)print(now_time) # 2024-01-05 17:35:38.186429
print(timestamp) # 1704447338186# 2.使用 time 模块# 获取当前时间的时间戳
now_timestamp = time.time()
# 转换为13位时间戳
timestamp2 = int(now_timestamp * 1000)print(now_timestamp) # 1704447338.1864295
print(timestamp2) # 1704447338186
1. 首先使用 datetime.now() 获取当前时间,然后通过 timestamp() 方法获取对应的UNIX时间戳(以秒为单位),最后乘以1000转换为13位时间戳。
2. 使用 time.time() 获取当前时间的时间戳(以秒为单位),然后乘以1000转换为13位时间戳。
5. 获取MST、EST、UTC、GMT 和 HST 不同的时区的时间
from datetime import datetime
from pytz import timezone# 获取当前GMT时间
gmt_now = datetime.now(timezone('GMT'))
print(f"GMT时间: {gmt_now}") # GMT时间: 2024-01-05 09:54:22.042074+00:00# 获取当前UTC时间
utc_now = datetime.now(timezone('UTC'))
print(f"UTC时间: {utc_now}") # UTC时间: 2024-01-05 09:54:22.042074+00:00# 获取当前MST时间(夏令时结束)
mst_now = datetime.now(timezone('MST'))
print(f"MST时间: {mst_now}") # MST时间: 2024-01-05 02:54:22.042074-07:00# 获取当前EST时间(夏令时开始)
est_now = datetime.now(timezone('EST'))
print(f"EST时间: {est_now}") # EST时间: 2024-01-05 04:54:22.042074-05:00# 获取当前HST时间(夏威夷)
hst_now = datetime.now(timezone('HST'))
print(f"HST时间: {hst_now}") # HST时间: 2024-01-04 23:54:22.042074-10:00
1.MST (Mountain Standard Time):这是美国西部时区,通常是指从太平洋时间到山区时间之间的时区。它通常在早上和下午工作,因为它的夏令时是从3月第二个周日开始到11月第二个周日结束。
2.EST (Eastern Standard Time):这是美国东部时区,通常是指从太平洋时间到东部时间之间的时区。它通常在上午和下午工作,因为它的夏令时是从3月第二个周日开始到11月第一个周日结束。
3.UTC (Coordinated Universal Time):协调世界时,也称为国际原子时,是一种全球通用的时间标准。它基于地球自转的速度来定义,并且不受任何特定地点的影响。
4.GMT (Greenwich Mean Time):格林尼治标准时间,是英国的官方时间,也是UTC的前身。它是一种基于地球自转速度的时间标准,通常用于描述英国的时间。
5.HST (Hawaii Standard Time):夏威夷标准时间,是夏威夷和附近岛屿的时间。它比UTC快大约18个小时,因此在冬季时它通常是前一天的日期。
6. 获取日期是周几
from datetime import datetime
import calendardate_string = "2024-01-06"
date = datetime.strptime(date_string, "%Y-%m-%d") # 将日期字符串转换为 datetime对象# strftime() 日期格式化函数
print(date.strftime("%a")) # Sat
print(date.strftime("%A")) # Saturday# weekday() 方法: 0~6 (0代表周一, 6代表周日)
weekday = date.weekday()
print(weekday) # 5# 获取日期是一周中的哪一天(calendar.day_name是一个包含一周七天名称的列表)0~6
print(calendar.day_name[1]) # Tuesday
print(calendar.day_name[date.weekday()]) # Saturday# isoweekday() 方法: 1~7 (1代表周一, 7代表周日)
isoweekday = date.isoweekday()
print(isoweekday) # 6# 当天时间
today = datetime.now() # datetime.today()print(today) # 2024-01-06 10:24:27.849871
print(today.strftime("%a")) # Sat
print(today.strftime("%A")) # Saturday
print(today.weekday()) # 5
print(calendar.day_name[today.weekday()]) # Saturday
print(today.isoweekday()) # 6
7. 计算两个日期的时间差
from datetime import datetime# 使用datetime模块
# 定义两个日期
date_1_1 = datetime(2024, 1, 1, 10, 12, 12, )
date_1_2 = datetime(2024, 1, 8, 16, 55, 23, 520125)
diff_1 = date_1_2 - date_1_1print(date_1_1)  # 2024-01-01 10:12:12
print(date_1_2)  # 2024-01-08 16:55:23.520125
print("时间差为: ", diff_1)  # 时间差为:  7 days, 6:43:11.520125
print(diff_1.days)  # 7
print(diff_1.seconds)  # 24191 : 不计算天数的秒,只计算小时分钟和秒的秒数 6:43:11
print(diff_1.microseconds)  # 520125 : 只计算毫秒
print(diff_1.__class__)  # <class 'datetime.timedelta'># 定义两个时间戳日期
date_2_1 = 1704339094
date_2_2 = 1704791254
# 将时间戳转换为日期
time1 = datetime.fromtimestamp(date_2_1)
time2 = datetime.fromtimestamp(date_2_2)
print(time1)  # 2024-01-04 11:31:34
print(time2)  # 2024-01-09 17:07:34
diff_2 = time2 - time1
print(diff_2)  # 5 days, 5:36:00
print(diff_2.days)  # 5# 定义两个字符串日期
date_3_1 = "2024-01-02 12:22:03"
date_3_2 = "2024-01-08 03:12:43"
# 将字符串日期,转换为日期格式
time_3_1 = datetime.strptime(date_3_1, "%Y-%m-%d %H:%M:%S")
time_3_2 = datetime.strptime(date_3_2, "%Y-%m-%d %H:%M:%S")
print(time_3_1)  # 2024-01-02 12:22:03
print(time_3_2)  # 2024-01-08 03:12:43
diff_3 = time_3_2 - time_3_1
print(diff_3)  # 5 days, 14:50:40
print(diff_3.days)  # 5
# 将时间差转换成秒数
diff_3_s = diff_3.total_seconds()
print(diff_3_s)  # 485440.0
8. 日期加减n天,月,年等
from datetime import date, timedelta, datetime
from dateutil.relativedelta import relativedelta# 获取当前日期
today = date.today()
print(today)  # 2024-01-11# 使用datetime模块来进行日期的加减操作
# 加上n天
tomorrow = today + timedelta(days=1)
print(tomorrow)  # 2024-01-12# 减去n天
yesterday = today - timedelta(days=1)
print(yesterday)  # 2024-01-10# 对于更复杂的日期运算(如月份、年份等),也可以使用relativedelta函数
# 加上n天
next_day = today + relativedelta(days=1)
print(next_day)  # 2024-01-12# 减去n天
last_day = today - relativedelta(days=1)
print(last_day)  # 2024-01-10# 加上n月
next_month = today + relativedelta(months=1)
print(next_month)  # 2024-02-11# 减去n月
last_month = today - relativedelta(months=1)
print(last_month)  # 2023-12-11# 加上n年
next_year = today + relativedelta(years=1)
print(next_year)  # 2025-01-11# 减去n年
last_year = today - relativedelta(years=1)
print(last_year)  # 2023-01-11# 加上n周
next_week = today + relativedelta(weeks=1)
print(next_week)  # 2024-01-18# 减去n周
last_week = today - relativedelta(weeks=1)
print(last_week)  # 2024-01-04# 替换年月日
replace_today_y = today + relativedelta(year=2000)
replace_today_m = today + relativedelta(month=2)
replace_today_d = today + relativedelta(day=2)
replace_today = today + relativedelta(year=2000, month=2, day=2)print(replace_today_y)  # 2000-01-11
print(replace_today_m)  # 2024-02-11
print(replace_today_d)  # 2024-01-02
print(replace_today)    # 2000-02-02# 分钟加减
# 获取现在时间
now_time = datetime.now()
print(now_time)  # 2024-01-11 14:00:29.085170# 加上n天
next_min1 = now_time + timedelta(minutes=20)
next_min2 = now_time + relativedelta(minutes=20)
print(next_min1)  # 2024-01-11 14:20:29.085170
print(next_min2)  # 2024-01-11 14:20:29.085170# 减去n天
last_min1 = now_time - timedelta(minutes=20)
last_min2 = now_time - relativedelta(minutes=20)
print(last_min1)  # 2024-01-11 13:40:29.085170
print(last_min2)  # 2024-01-11 13:40:29.085170
9. 遍历两个日期间的所有日期
from datetime import datetime, timedeltaprint("**************************")
# 遍历两个日期间的所有日期# 定义两个日期
date1 = "2024-01-01"
date2 = "2024-01-08"
# 将字符串日期转换为日期对象
start_date = datetime.strptime(date1, "%Y-%m-%d")
end_date = datetime.strptime(date2, "%Y-%m-%d")
# 遍历日期并打印
current_date = start_date
while current_date <= end_date:print(current_date.strftime("%Y-%m-%d"))current_date += timedelta(days=1)# 遍历list打印日期
date_list = [start_date + timedelta(days=i) for i in range(0, (end_date - start_date).days + 1)]for date in date_list:print(date.strftime("%Y-%m-%d"))
2024-01-01
2024-01-02
2024-01-03
2024-01-04
2024-01-05
2024-01-06
2024-01-07
2024-01-08
10. 不同时区的时间互相转换
import pendulum# 创建伦敦时间对象
london_time = pendulum.datetime(2024, 1, 9, 12, 0, 0, tz='Europe/London')
print("伦敦时间:", london_time)# 转换成巴黎时间
paris_time = london_time.in_tz('Europe/Paris')
print("巴黎时间:", paris_time)# 转换成东京时间
tokyo_time = london_time.in_tz('Asia/Tokyo')
print("东京时间:", tokyo_time)# 转换成上海时间
shanghai_time = london_time.in_tz('Asia/Shanghai')
print("上海时间:", shanghai_time)# 转换成莫斯科时间
moscow_time = london_time.in_tz('Europe/Moscow')
print("莫斯科时间:", moscow_time)# 转换成印尼时间
indonesia_time = london_time.in_tz('Asia/Jakarta')
print("印尼时间:", indonesia_time)# 转换成印度时间
india_time = london_time.in_tz('Asia/Kolkata')
print("印度时间:", india_time)
伦敦时间: 2024-01-09 12:00:00+00:00
巴黎时间: 2024-01-09 13:00:00+01:00
东京时间: 2024-01-09 21:00:00+09:00
上海时间: 2024-01-09 20:00:00+08:00
莫斯科时间: 2024-01-09 15:00:00+03:00
印尼时间: 2024-01-09 19:00:00+07:00
印度时间: 2024-01-09 17:30:00+05:30
11. 输入日期计算年龄(到今天)
from dateutil import parser
from datetime import datedef get_age():today = date.today()in_birthday = input("请输入您的出生年月日: ")try:birthday = parser.parse(in_birthday).date()except ValueError:print("您输入的日期有误!!!")return get_age()if birthday > today:print("您输入的日期有误!!!")return get_age()elif birthday.replace(year=today.year) > today:return today.year - birthday.year - 1else:return today.year - birthday.yearprint("您的年龄是:", get_age(), "岁;")
**************************
请输入您的出生年月日: 2000 3 6
您的年龄是: 23;
**************************
请输入您的出生年月日: 1999-1-2
您的年龄是: 25;
**************************
请输入您的出生年月日: 2001 ,6 ,16
您的年龄是: 22;
**************************
请输入您的出生年月日: 1998 Jan 3
您的年龄是: 26;
**************************
请输入您的出生年月日: Jan 2000 8
您的年龄是: 24;
**************************
请输入您的出生年月日: 163546答复
您输入的日期有误!!!
请输入您的出生年月日: 2033-01-06
您输入的日期有误!!!
请输入您的出生年月日: 2003-18-06
您输入的日期有误!!!
请输入您的出生年月日: 2003-01-06
您的年龄是: 21;
**************************
12. 计算该年该月的第几个星期几的日期
import datetime# 获取该年该月的第几个星期几的日期
def get_weekday_of_month(year, month, week_number, weekday):# 获取该月第一天的日期first_day = datetime.date(year, month, 1)# 计算第一个星期几, 在该月的第几天 (weekday(): 0-6; 0表示周一, 所以计算周时减1, 计算第几天时 加1)first_weekday = (weekday - 1 - first_day.weekday() + 7) % 7 + 1# 计算该年该月的第几个星期几所在的日期date = first_day + datetime.timedelta(days=(week_number - 1) * 7 + first_weekday - 1)return date# 例如:计算2024年的感恩节是哪一天(2024年第4个周四)
print(get_weekday_of_month(2024, 11, 4, 4))
# 2024-11-28
end

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql | 学生参加各科考试次数

学生表: Students------------------------ | Column Name | Type | ------------------------ | student_id | int | | student_name | varchar | ------------------------ 在 SQL 中&#xff0c;主键为 student_id&#xff08;学生ID&#xff09;。 该表内的每…

What is `@PathVariable` does?

PathVariable 是SpringMVC中的注解&#xff0c;用于将HTTP请求的URI路径变量映射到Controller方法参数上。 当URL路径中包含占位符&#xff08;由大括号 {} 包围的部分&#xff09;时&#xff0c;可以使用此注解来绑定这些动态部分到方法参数。 使用样例 获取单个路径变量 …

在控制理论里,单个输入变量被施加了饱和特性处理,那么后续怎么利用李雅普诺夫判据判断系统稳定性呢?

在控制理论中&#xff0c;当一个系统的输入变量被施加了饱和特性&#xff08;即输入被限制在某个范围内&#xff09;&#xff0c;系统的稳定性分析可能变得更复杂。使用李雅普诺夫方法判断这样的系统稳定性通常需要考虑非线性特性。下面是如何使用李雅普诺夫方法进行稳定性分析…

多机TCP通讯之hello world(C++)

文章目录 TCP是什么准备工作CMakeLists.txt服务端代码客户端代码参考 TCP是什么 TCP&#xff08;传输控制协议&#xff09;是一种在计算机网络中广泛使用的协议&#xff0c;它提供了可靠的、面向连接的数据传输服务。TCP 是 OSI 模型中的传输层协议&#xff0c;它确保了数据的…

[NAND Flash 6.4] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< ​全文 6000 字 内容摘要 NAND Flash 引脚功能 读操作步骤 NAND Flash中的特殊硬件结构 NAND Flash 读写时的数据流向 Read 操作时序 读时序操作过…

第 11 章 树结构实际应用

文章目录 11.1 堆排序11.1.1 堆排序基本介绍11.1.2 堆排序基本思想11.1.3 堆排序步骤图解说明11.1.4 堆排序代码实现 11.2 赫夫曼树11.2.1 基本介绍11.2.2 赫夫曼树几个重要概念和举例说明11.2.3 赫夫曼树创建思路图解11.2.4 赫夫曼树的代码实现 11.3 赫夫曼编码11.3.1 基本介绍…

【NI国产替代】USB‑7846 Kintex-7 160T FPGA,500 kS/s多功能可重配置I/O设备

Kintex-7 160T FPGA&#xff0c;500 kS/s多功能可重配置I/O设备 USB‑7846具有用户可编程FPGA&#xff0c;可用于高性能板载处理和对I/O信号进行直接控制&#xff0c;以确保系统定时和同步的完全灵活性。 您可以使用LabVIEW FPGA模块自定义这些设备&#xff0c;开发需要精确定时…

【GitHub项目推荐--13 个 Python 学习资源】【转载】

近些年&#xff0c;人工智能应用铺天盖地。人脸识别、老照片复活、换脸等应用都得益于人工智能算法。 许多人工智能算法封装的框架基于 Python 语言&#xff0c;这也导致了 Python 的热度只增不减。 Python 简单易学&#xff0c;根据 2020 年 StackOverflow 开发者调查报告显…

智能路由器中的 dns.he.net可使用自定义域名的免费 DDNS 服务配置方法

今天介绍的这个是可以使用自定义域名同时支持使用二级域名的免费DDNS服务 dns.he.net的动态DDNS服务的配置方法, 这个服务相对还是比较稳定的, 其配置也和其他的DDNS服务有些不太一样, 首先他的主机名: 这里需要设置为登录后分配的区域域名: ipv6.he.net 然后就是 DDNS 用户…

gRPC vs HTTP

性能 gRPC 消息使用 Protobuf&#xff08;一种高效的二进制消息格式&#xff09;进行序列化。 Protobuf 在服务器和客户端上可以非常快速地序列化。 Protobuf 序列化产生的有效负载较小&#xff0c;这在移动应用等带宽有限的方案中很重要。 gRPC 专为 HTTP/2&#xff08;HTTP…

浅谈Vue2与Vue3的双向绑定原理的理解

一、Vue2双向绑定原理 Vue2使用双向绑定核心原理是基于数据劫持发布-订阅模式。一部分通过数据劫持&#xff08;Object.defineProperty()&#xff09;和Watcher类。 数据劫持&#xff1a;Vue2使用Object.defineProperty()方法劫持数据对象的属性&#xff0c;对属性getter和sett…

让一个元素水平居中的方式有哪些

今天总结一下我所遇到过的 让一个元素水平居中的方式 <!--* Author: HuKang* Date: 2023-09-19 11:07:44* LastEditTime: 2023-12-22 22:52:38* LastEditors: HuKang* Description: * FilePath: \route-planning\tempDemo.html --> <!DOCTYPE html> <html>…

案例:新闻数据加载

文章目录 介绍相关概念相关权限约束与限制完整示例 代码结构解读构建主界面数据请求下拉刷新总结 介绍 本篇Codelab是基于ArkTS的声明式开发范式实现的样例&#xff0c;主要介绍了数据请求和touch事件的使用。包含以下功能&#xff1a; 数据请求。列表下拉刷新。列表上拉加载…

NAT44-ED会话与处理线程

NAT44-ED流表使用bihash创建&#xff0c;bihash类型为16_8&#xff0c;即16字节的key值和8字节的value值。默认情况下每个线程的会话数量为63K。bihash的哈希桶数量默认为32768。 int nat44_plugin_enable (nat44_config_t c) {snat_main_t *sm &snat_main;if (!c.sessio…

Express 应用生成器(脚手架)的安装与使用

1、简介 自动生成一个express搭建的项目结构 官网&#xff1a;Express 应用生成器 2&#xff0c;使用 2.1全局安装&#xff0c;使用管理员打开命令窗口 2.2、安装express # 全局安装express npm install -g express # 全局安装express脚手架 npm install -g express-gene…

Linux中的并发与并行概念解析

在现代计算环境中&#xff0c;特别是面对高性能计算、大规模服务部署以及实时数据处理等场景&#xff0c;对并发与并行的理解和运用显得至关重要。本文旨在深入探讨Linux操作系统中的并发与并行机制&#xff0c;并结合实践案例解析其技术细节。 并发&#xff08;Concurrency&a…

Socket编程-IO模型

1、首先IO模型的内容。 感觉可以简单理解为&#xff1a;我们写代码时&#xff0c;在基础的 IO 操作上做了一些其他的策略&#xff0c;根据策略的不同&#xff0c;一般有阻塞IO和非阻塞IO 1、阻塞IO 就是在操作的时候&#xff0c;比如网络通信中&#xff0c;某一线程使用下面这…

最大公约数和最小公倍数

1. 最大公约数 给定两个整数&#xff0c;求这两个数的最大公约数 暴力求解&#xff1a; 从较小的那个数开始&#xff0c;依次递减&#xff0c;直到某个数能够同时被整除 //暴力求解 int main() {int a 0;int b 0;scanf("%d %d", &a, &b);int i 0;int min …

8x8离散余弦的快速精确实现使用数据流单指令多数据扩展指令集进行转换MMX 说明书

1.https://www.cs.cmu.edu/~barbic/cs-740/ap922.pdf 2.FFmpeg: libavcodec/x86/fdct.c Source File 再学FDCT快速精确实现协议改写浮点FDCT, ffmpeg的dct使用的就是这个快速精确协议。

代码随想录 Leetcode142. 环形链表 II

题目&#xff1a; 代码(首刷看解析 2024年1月13日&#xff09;&#xff1a; class Solution { public:ListNode *detectCycle(ListNode *head) {if (head nullptr) return nullptr;ListNode* fast head;ListNode* slow head;while (true) {if(fast->next nullptr || fa…