python从入门到精通(十):python常见标准库的使用

(一)Python 中处理日期和时间的模块

time

time() 返回时间戳格式的时间 (相对于1.1 00:00:00以秒计算的偏移量)
ctime() 返回字符串形式的时间,可以传入时间戳格式时间,用来做转化
asctime() 返回字符串形式的时间,可以传入struct_time形式时间,用来做转化
localtime() 返回当前时间的struct_time形式,可传入时间戳格式时间,用来做转化
gmtime() 返回当前时间的struct_time形式,UTC时区(0时区) ,可传入时间戳格式时间,用来做转化
mktime(t) #执行与gmtime(), localtime()相反的操作,将UTC时区(0时区)的struct_time转换为一个Unix时间戳
strftime(format,t) 格式化日期
strptime(string[, format]) 根据指定的格式把一个时间字符串解析为时间元组

导入time模块

import time  # 引入time模块

time获取当前时间戳

ticks = time.time()
print ("当前时间戳为:", ticks)
当前时间戳为: 1707551283.5884776

localtime获取当前时间

localtime = time.localtime()
localtime = time.localtime(time.time())
print ("本地时间为 :", localtime)
本地时间为 : time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=15, tm_min=51, tm_sec=5, tm_wday=5, tm_yday=41, tm_isdst=0)

struct_time

struct_time时间元组,为结构化数据,共有九个元素

tm_year(年)			2023
tm_mon(月)			1~12
tm_mday(日)			1~31
tm_hour(时)			0~23
tm_min(分)			0~59
tm_sec(秒)			0~61(6061 是闰秒)
tm_wday(weekday)		0~6
tm_yday(一年中的第几天)	1~366
tm_isdst(是否是夏令时)    -1
print(t.tm_year)
print(t.tm_mon)
print(t.tm_mday)
print(t.tm_hour)
print(t.tm_min)
print(t.tm_sec)
print(t.tm_wday)
print(t.tm_yday)
print(t.tm_isdst)
2024
2
10
19
47
51
5
41
0

asctime获取格式化的时间

localtime = time.asctime()
localtime = time.asctime(localtime = time.localtime(time.time()))
print ("本地时间为 :", localtime)
本地时间为 : Sat Feb 10 15:52:22 2024

ctime获取格式化的时间

localtime = time.ctime()
localtime = time.ctime(localtime = time.localtime(time.time()))
print ("本地时间为 :", localtime)
本地时间为 : Sat Feb 10 15:57:37 2024

gmtime获取格式化的时间

localtime = time.gmtime()
localtime = time.gmtime(time.time())
print ("本地时间为 :", localtime)
本地时间为 : time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=7, tm_min=59, tm_sec=37, tm_wday=5, tm_yday=41, tm_isdst=0)

计时器功能

线程推迟指定的时间运行。单位为秒

time.sleep(secs)

strftime格式化日期

print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
2024-02-10 16:28:17

strptime格式化日期

print(time.strptime('2024-02-10 16:07:28', '%Y-%m-%d %H:%M:%S'))
time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=16, tm_min=7, tm_sec=28, tm_wday=5, tm_yday=41, tm_isdst=-1)

格式化日期字符

在这里插入图片描述

datetime

datetime中存在以下这些类
在这里插入图片描述

导入datetime

from datetime import datetime
from datetime import datet
from datetime import time

获取当前的日期时间

print(datetime.now())
2024-02-10 16:35:11.185172

创建datetime对象

from datetime import datetime
date = datetime.now()
print(date)
2024-02-10 16:36:40.044294

格式化时间

from datetime import datetime
DataTime = datetime.now()
Ctime = DataTime.strftime("%H:%M:%S")
print("现在的时刻", Ctime)

获取date日期类的属性

from datetime import date
today = date.today()
print('today:', today)   #返回日期
print('.year:', today.year) #返回年
print('.month:', today.month) #返回月
print('.day:', today.day)  #返回日
2024-02-10
2024
2
10

获取date日期类的实例方法

print(date.today().replace(year=2020, month=1, day=1)) #生成一个新的日期对象
print(date.today().timetuple())
print(date.today().toordinal())
print(date.today().weekday())
print(date.today().isoweekday())
print(date.today().isocalendar())
print(date.today().isoformat())
print(date.today().strftime('%Y/%m/%d'))
2020-01-01
time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=41, tm_isdst=-1)
738926
5
6
datetime.IsoCalendarDate(year=2024, week=6, weekday=6)
2024-02-10
2024/02/10

获取time时间类的属性

from datetime import time
t = time(20, 5, 40, 8888)
t = time(hour=20, minute=5, second=40, microsecond=8888)
print("小时 ",time.hour)
print("分钟 ",time.minute)
print("秒 ",time.second)
print("微秒 ",time.microsecond)

获取time时间类的实例方法

from datetime import time

t = time(hour=20, minute=5, second=40, microsecond=8888)
print(t.isoformat())
print(t.strftime('%H%M%S'))
print(t.replace(hour=18, minute=25, second=30, microsecond=6666))

获取datetime日期时间类的属性

from datetime import datetime
DataTime = datetime.now()
print("年 ", DataTime.year)  # Output: 年  2022 
print("月 ", DataTime.month)  # Output: 月  3 
print("日 ", DataTime.day)  # Output: 日  28
print("小时 ", DataTime.hour)  # Output: 小时  10
print("分钟 ", DataTime.minute)  # Output: 分钟  51
print("秒 ", DataTime.second)  # Output: 秒  13
print("微秒 ",now.microsecond) # Output: 微秒  79841

获取datetime日期时间类的类方法

from datetime import datetime, timezone,date,time
import time

t = time
print(datetime.now())
print(datetime.today())
print(datetime.now(timezone.utc))
datetime.fromtimestamp(time.time())
print(datetime.strptime('2017/02/04 20:49', '%Y/%m/%d %H:%M'))  
print(datetime.combine(date(2023, 5, 6),time(20, 5, 40, 8888)))  #合并
2024-02-10 19:41:48.035769
2024-02-10 19:41:48.035769
2024-02-10 11:41:48.035769+00:00
2017-02-04 20:49:00
2023-05-06 20:05:40.008888

获取datetime日期时间类的实例方法

now = datetime.now()
print(now.replace(year=2019, month=12, day=5, hour=23, minute=59, second=30, microsecond=59))
print(now.isoformat())
print(now.isocalendar())
print(now.weekday())
print(now.timetuple())
print(now.utctimetuple())
print(now.strftime("%Y%m%d %H:%M:%S.%f"))
print(now.toordinal())
print(now.date())
print(now.time())
print(now.timetz())
print(now.ctime())
2019-12-05 23:59:30.000059
2024-02-10T19:17:55.243001
datetime.IsoCalendarDate(year=2024, week=6, weekday=6)
5
time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=19, tm_min=17, tm_sec=55, tm_wday=5, tm_yday=41, tm_isdst=-1)
time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=19, tm_min=17, tm_sec=55, tm_wday=5, tm_yday=41, tm_isdst=0)
20240210 19:17:55.243001
738926
2024-02-10
19:17:55.243001
19:17:55.243001
Sat Feb 10 19:17:55 2024

获取间隔时间段后的datetime

获取当前时间后一天的datetime对象(明天的datetime对象)

from datetime import datetime
from datetime import timedelta

now = datetime.now()
dt = now + timedelta(days=1)

print(now)
print(dt)
2024-02-10 19:52:42.830384
2024-02-11 19:52:42.830384

使用timedelta,可以用于增量计算,参数days表示间隔多少天。
如果是计算昨天,直接减掉就可以了。

获取当前时间几个小时前的datetime

from datetime import datetime
from datetime import timedelta

now = datetime.now()
dt = now - timedelta(hours=6)

print(now)
print(dt)
2024-02-10 19:53:02.775604
2024-02-10 13:53:02.775604

获取所有时区

import pytz
zones = pytz.all_timezones
print(zones)
['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Asmera'.........

获取某月日历

import calendar

cal = calendar.month(2016, 1)
print("以下输出2016年1月份的日历:")
print(cal)
以下输出20161月份的日历:
    January 2016
Mo Tu We Th Fr Sa Su
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HACKNOE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值