标签:str 19 datetime 2024 tm 模块 time print
【一】表示时间的三种方式
- 时间戳
- 元祖(struct_time):年,月,日,时,分,秒,毫秒,微妙
- 格式化的时间字符串:xx年-xx月-xx日 时:分:秒
【二】time模块
(1)导入模块
import time
(2)时间戳
- 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
import time
time_str = time.time()
print(time_str,type(time_str))
# 1713513369.7786846 <class 'float'>
# 将时间戳转换为UTC时间,与英国伦敦当地时间一致
print(time.gmtime(time_str))
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=7, tm_min=59, tm_sec=17, tm_wday=4, tm_yday=110, tm_isdst=0)
# 时间戳转换为时间元组(当地时间),与北京时间一致
print(time.localtime(time_str))
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=15, tm_min=59, tm_sec=17, tm_wday=4, tm_yday=110, tm_isdst=0)
(3)时间字符串
import time
now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(now_time) # 2024-04-19 16:08:53
now_time = time.strftime("%Y-%m-%d %H:%M:%S")
print(now_time) # 2024-04-19 16:10:18
now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
print(now_time) # 2024-04-19 08:11:14
now_time = time.strftime("%Y-%m-%d %X")
print(now_time) # 2024-04-19 16:12:04
符号 |
含义 |
值 |
%y |
两位数的年份表示 |
(00-99) |
%Y |
四位数的年份表示 |
(000-9999) |
%m |
月份 |
(01-12) |
%d |
月内中的一天 |
(0-31) |
%H |
24小时制小时数 |
(0-23) |
%I |
12小时制小时数 |
(01-12) |
%M |
分钟数 |
(00=59) |
%S |
秒 |
(00-59) |
%a |
本地简化星期名称 |
|
%A |
本地完整星期名称 |
|
%b |
本地简化的月份名称 |
|
%B |
本地完整的月份名称 |
|
%c |
本地相应的日期表示和时间表示 |
|
%j |
年内的一天 |
(001-366) |
%p |
本地A.M.或P.M.的等价符 |
|
%U |
一年中的星期数 |
(00-53)星期天为星期的开始 |
%w |
星期 |
(0-6),星期天为星期的开始 |
%W |
一年中的星期数 |
(00-53)星期一为星期的开始 |
%x |
本地相应的日期表示 |
|
%X |
本地相应的时间表示 |
|
%Z |
当前时区的名称 |
|
%% |
%号本身 |
|
(4)时间元祖
import time
date_time = time.localtime()
print(date_time)
# 可以通过直接 `.` 取每个值
print(date_time.tm_year) # 2024
print(date_time.tm_mon) # 4 当月
print(date_time.tm_mday) # 19 当天
print(date_time.tm_wday) # 4 星期几
print(date_time.tm_yday) # 100 当前天数 在一年中的第x天
# 可以通过索引取每个单独的值
print(date_time[0]) # 2024
- struct_time 元组共有9个元素共九个元素:
- (年,月,日,时,分,秒,一年中第几周,一年中第几天等)
索引(Index) |
属性(Attribute) |
值(Values) |
0 |
(年) |
比如2023 |
1 |
tm_mon(月) |
1 - 12 |
2 |
tm_mday(日) |
1 - 31 |
3 |
tm_hour(时) |
0 - 23 |
4 |
tm_min(分) |
0 - 59 |
5 |
tm_sec(秒) |
0 - 60 |
6 |
tm_wday(weekday) |
0 - 6(0表示周一) |
7 |
tm_yday(一年中的第几天) |
1 - 366 |
8 |
tm_isdst(是否是夏令时) |
默认为0 |
(5)结构化时间
[1]time.mktime(时间戳-->元组时间戳)
import time
time_str = time.time()
print(time_str) # 1713517821.8571513
time_str = time.localtime(time_str)
print(time_str) # time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=17, tm_min=10, tm_sec=21, tm_wday=4, tm_yday=110, tm_isdst=0)
time_str = time.mktime(time_str)
print(time_str) # 1713517821.0
[2]time.strftime(结构化时间-->时间字符串)
import time
time_str = time.strftime("%Y-%m-%d %X")
print(time_str) # 2024-04-19 17:15:45
print(time.localtime(time.time()))
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=17, tm_min=15, tm_sec=45, tm_wday=4, tm_yday=110, tm_isdst=0)
# 格式化当前时间元组
time_local = time.strftime("%Y-%m-%d", time.localtime(time.time()))
print(time_local) # 2024-04-19
[3]time.strptime(时间字符串-->时间元组)
import time
time_str = time.strptime("2024-4-19", "%Y-%m-%d")
print(time_str)
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=110, tm_isdst=-1)
time_local = time.strptime("4/19/2024", "%m/%d/%Y")
print(time_local)
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=110, tm_isdst=-1)
time_local = time.strptime("4:19:2024", "%m:%d:%Y")
print(time_local)
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=110, tm_isdst=-1)
[4]time.asctime(结构化时间--> %a %b %d %H:%M:%S %Y串)
import time
time_str = time.asctime(time.localtime(time.time()))
print(time_str)
# Fri Apr 19 17:21:15 2024
# 如果不传参数,直接返回当前时间的格式化串
time_local = time.asctime()
print(time_local)
# Fri Apr 19 17:21:15 2024
- time.ctime(时间戳) --> %a %b %d %H:%M:%S %Y串
import time
time_str = time.ctime(time.time())
print(time_str)
# Fri Apr 19 17:23:26 2024
# 如果不传参数,直接返回当前时间的格式化串
time_local = time.ctime()
print(time_local)
# Fri Apr 19 17:23:26 2024
(6)总结
time.time() # 生成时间戳
time.sleep() # 随机睡眠多长时间
time.strftime() # 格式化输出当前时间
time.strptime() # 将时间字符串格式转换为时间元组
time.localtime() # 拿到当前时间的时间元组格式
【三】datetime模块
(1)导入模块
import datetime
(2)自定义日期并格式化
import datetime
time_str = datetime.date(2025,4,19)
print(time_str) # 2025-04-19
(3)获取本地时间
#获取年月日
import datetime
now_time = datetime.date.today()
print(now_time) # 2024-04-19
#获取年月日时分秒
import datetime
now_time = datetime.datetime.today()
print(now_time) # 2024-04-19 15:23:40.058898
print(now_time.year) # 2024
print(now_time.month) #4
print(now_time.day) #19
print(now_time.hour) #15
print(now_time.minute) #23
print(now_time.second) #40
#weekday星期是0-6,0表示周一
print(now_time.weekday()) #4
#weekday星期是1-7,1表示周一
print(now_time.isoweekday()) #5
(4)timedelta对象
[1]时间增减
import datetime
now_today = datetime.timedelta(days=-5)
print(now_today) # 5 days, 0:00:00
[2]推迟和提前日期
import datetime
today = datetime.date.today()
print(today) #
back_days = datetime.timedelta(days=5)
print(back_days) # 5 days, 0:00:00
print(f'日期推后到{back_days + today}')
# 日期推后到2024-04-24
forward_days = datetime.timedelta(days=6)
print(forward_days) # 6 days, 0:00:00
print(f'日期提前到{today - forward_days}')
# 日期提前到2024-04-13
[3]日期对象与timedelta的关系
- 日期对象 = 日期对象 +/- timedelta对象
- timedelta对象 = 日期对象 +/- 日期对象
import datetime
birthday = datetime.date(2024, 4, 18)
today_date = datetime.date.today()
days = birthday - today_date
print(f'生日:{birthday}')
print(f'今天的日期:{today_date}')
print(f'距离生日还有{days}天')
# 生日:2024-04-18
# 今天的日期:2024-04-19
# 距离生日还有-1 day, 0:00:00天
标签:str,
19,
datetime,
2024,
tm,
模块,
time,
print
From: https://www.cnblogs.com/ligo6/p/18182398