文章目录
time模块
三种时间表现形式
1.时间戳(秒数)
从1970年1月1日到现在经历的秒数
2.结构化时间
计算机识别的日期格式
3.格式化时间
主要是给人看的
Y m d H M S X
年 月 日 时 分 秒 时:分:秒
示例如下:
# 导入时间模块
import time
# 时间戳
time.time()
print(time.time()) # 1666165810.4114015
# 时间字符串
print(time.strftime('%Y-%m-%d')) # 2022-10-19
print(time.strftime('%Y/%m/%d')) # 2022/10/19
print(time.strftime('%Y/%m/%d %H:%M:%S')) # 2022/10/19 15:56:52
print(time.strftime('%Y/%m/%d %X')) # 2022/10/19 15:56:52
# 时间元组:localtime将一个时间戳转换成当前时区的struct_time
print(time.localtime())
"""
打印结果为
time.struct_time(tm_year=2023, tm_mon=9, tm_mday=20, tm_hour=21, tm_min=39, tm_sec=35, tm_wday=2, tm_yday=263, tm_isdst=0)
"""
# 让程序原地阻塞指定的秒数
time.time(8)
注意:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的
datetime模块
- 两种导入方式获取查看当地时间
""" datetime"""
# 方式一:获取当前的datetime
from datetime import datetime
a = datetime.now()
print('当前日期:',a) # 当前日期: 2022-10-19 16:16:16.266254
c = datetime.utcnow()
print('世界时间:',c) # 世界时间: 2022-10-19 08:20:13.713343
# 方式二:获取当前的datetime
import datetime
b = datetime.datetime.now()
print('当前日期:',b) # 当前日期: 2022-10-19 16:16:16.266254
print(datetime.datetime.today()) # 2022-10-19 16:17:29.847966
print(datetime.date.today()) # 2022-10-19
- 同时导入date和datetime
datetime 年月日 时分秒
date 年月日
time 时分秒(后续会有此规律)
from datetime import date,datetime
print(date.today()) # 2022-10-19
print(datetime.today()) # 2022-10-19 16:27:29.955615
- 用指定日期时间创建datetime
import datetime
t = datetime.datetime(2008,8,8,8,8,8) # 不能填零
print('指定日期:',t) # 指定日期: 2008-08-08 08:08:08
- 将字符串转换成datetime类型
将下列的字符串转成为datetime类型
"""
'2008/8/8'
'2016年9月13日星期六'
'2020年6月24日星期六6时6分6秒'
'10/19/2022'
'10/19/2022 8:42:12'
"""
import datetime
t1 = datetime.datetime.strptime('2008/8/8','%Y/%m/%d')
print(t1) # 2008-08-08 00:00:00
t2 = datetime.datetime.strptime('2016年9月13日星期六','%Y年%m月%d日星期六')
print(t2) # 2016-09-13 00:00:00
t3 = datetime.datetime.strptime('2020年6月24日星期六6时6分6秒','%Y年%m月%d日星期六%H时%M分%S秒') # 数字必须写阿拉伯数字
print(t3) # 2020-06-24 06:06:06
t4 = datetime.datetime.strptime('10/19/2022','%m/%d/%Y')
print(t4) # 2022-10-19 00:00:00
t5 = datetime.datetime.strptime('10/19/2022 8:42:12','%m/%d/%Y %H:%M:%S')
print(t5) # 2022-10-19 08:42:12
- 将datetime类型转换为字符串
"""
2008年8月8日星期六,18时18分18秒
Saturday,September 30,2010
8/30/2021 18:30 AM
June 30,2021
"""
from datetime import datetime
t1 = datetime(2008,8,8,18,18,18)
print(t1.strftime('%Y年%m月%d日%A,%H时%M分%S秒')) # 2008年08月08日Friday,18时18分18秒
print(t1.strftime('%A,%B %d,%Y')) # Friday,August 08,2008
t2 = datetime(2021,8,30,8,30,34)
print(t2.strftime('%m/%d/%Y %I:%M:%S%p')) # 08/30/2021 08:30:34AM
print(t2.strftime('%m/%d/%Y %H:%M:%S')) # 08/30/2021 08:30:34
t3 = datetime(2021,6,30)
print(t3.strftime('%B %d %Y')) # June 30 2021
- 代码是如何将时间进行天数或者秒数的相加
import datetime
t1 = datetime.date.today()
print(t1) # 2022-10-19
t2 = datetime.timedelta(days=6)
print(t1+t2) # 2022-10-25
t3 = datetime.datetime.today()
print(t3) # 2022-10-19 18:11:21.935837
t4 = datetime.timedelta(minutes=30)
print(t3+t4) # 2022-10-19 18:42:21.593501
7.用系统时间输出以下字符串
"""
今天是2022年10月19日
今天是这周的第几天
今天是今年的第几天
今周是今年的第几周
今天是当月的第几天
"""
from datetime import datetime
# 获取当前系统时间
t = datetime.now()
print(t) # 2022-10-19 17:29:27.145155
print(t.strftime('今天是%Y年%m月%d日')) # 今天是2022年10月19日
print(t.strftime('今天是这周的第%w天')) # 今天是这周的第3天
print(t.strftime('今天是今年的第%j天')) # 今天是今年的第292天
print(t.strftime('今周是今年的第%W周')) # 今周是今年的第42周
print(t.strftime('今天是当月的第%d天')) # 今天是当月的第19天
8.日期时间的格式化字符串
%a 星期几的简写;如 星期三为Web
%A 星期几的全称;如 星期三为Wednesday
%b 月份的简写; 如4月份为Apr
%B 月份的全称; 如4月份为April
%c 标准的日期的时间串;(如: 04/07/10 10:43:39)
%C 年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号