Skip to content

Commit 799fc20

Browse files
committed
timedelta的使用
1 parent 5a53e03 commit 799fc20

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

date_and_time/dates-1.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from datetime import date,timedelta,datetime,timezone
2+
3+
#code1
4+
##timedelta表示预设的时间插值
5+
delta_one_day = timedelta(days=1)
6+
print(f"One day: {delta_one_day}")
7+
8+
delta_two_hours_30_mins = timedelta(hours=2, minutes=30)
9+
print(f"Two hours and 30 minutes: {delta_two_hours_30_mins}")
10+
11+
delta_complex = timedelta(weeks=1, days=2, hours=3, minutes=4, seconds=5, milliseconds=6, microseconds=7)
12+
print(f"Complex delta: {delta_complex}")
13+
print(f"Total seconds in complex delta: {delta_complex.total_seconds()}")
14+
15+
print(datetime.now())
16+
17+
#code2
18+
## timezone 对象表示一个与UTC(协调世界时)的固定偏移量。它是 tzinfo 抽象基类的一个简单实现。
19+
##timezone(offset, name=None)
20+
##offset: 一个 timedelta 对象,表示与UTC的偏移。例如,timedelta(hours=8) 表示 UTC+8。timedelta(hours=-5) 表示 UTC-5。
21+
22+
## 东八区 (UTC+8)
23+
offset_8_hours = timedelta(hours=8)
24+
beijing_zone = timezone(offset_8_hours, name="BeijingTime")
25+
print(f"Beijing Zone: {beijing_zone}, Offset: {beijing_zone.utcoffset(None)}")
26+
27+
## 将 timezone 用于 datetime 对象
28+
dt_now_utc = datetime.now(timezone.utc)
29+
print(f"Current datetime in UTC: {dt_now_utc}")
30+
31+
dt_now_beijing = datetime.now(beijing_zone)
32+
print(f"Current datetime in Beijing (fixed offset): {dt_now_beijing}")

date_and_time/dates-2.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
##datetime时间点,有时区信息属性
2+
##timedelta预设的时间间隔
3+
from datetime import datetime,timezone,timedelta,date
4+
5+
#code1
6+
#d1= datetime.now() ##获取到的是当前计算机环境的时间
7+
d1 = datetime.now(timezone.utc) #创建一个**“感知型”(aware)** 的 datetime 对象。这意味着 d1 不仅知道日期和时间,还明确知道它代表的是 UTC (协调世界时) 时间。它的 tzinfo 属性会被设置为 timezone.utc。
8+
print(d1,d1.tzinfo,sep="\n")
9+
10+
d2 = datetime.fromisoformat("2026-01-01T00:00:00") ##字符串格式化为时间
11+
print(d2,d2.tzinfo,sep="\n")
12+
13+
#td = d2 - d1 #这段代码会报错,d1是aware对象,d2是naive对象
14+
td = d2.replace(tzinfo=timezone.utc) - d1
15+
print(td,type(td).__name__, sep="\n")
16+
print(td.total_seconds())
17+
18+
19+
#code2
20+
21+
td = timedelta(hours=2, minutes=30)
22+
print(td)
23+
print(td.days,td.seconds)
24+
25+
#code3
26+
27+
s = "2025-12-30T11:59:00"
28+
29+
dt = datetime.fromisoformat(s)
30+
print(dt)
31+
32+
start = datetime(year=dt.year, month=dt.month,day=1)
33+
print(start)
34+
35+
start = date(year=dt.year,month=dt.month,day=dt.day)
36+
print(start)
37+
38+
delta = timedelta(hours=50,minutes=30)
39+
40+
print(start + delta)
41+
42+
43+
#code3
44+
45+
end = date(2023,3,1)
46+
print(end - timedelta(days=1))

0 commit comments

Comments
 (0)