Skip to content

Latest commit

 

History

History
141 lines (130 loc) · 4.48 KB

kc46.md

File metadata and controls

141 lines (130 loc) · 4.48 KB

4-6 日期和时间

在应用中日期、时间、时间戳(时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量),是会经常要取用的数据,比如得到今天的日期、

星期、一个月的起始和结束等,时间戳经常会用到数据签名或者数据流水号等;使用日期和时间,需要导入库datetime、time,

  • time 是继于系统Unix Timestamp的,因此,使用time可能在不同的平台,有差异;日期范围限定在1970 - 2038 之间
  • datetime 可以理解为time的升级版,弥补了time的不足,提供了更丰富的功能函数

日期和时间,因为存在不同系统的差异,因此常会用到格式化,python提供的日期格式化符号主要有

格式 含义
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01-31)
%H 一天中的第几个小时(24小时制,00-23)
%I 第几个小时(12小时制,01-12)
%j 一年中的第几天(001-366)
%m 月份(01-12)
%M 分钟数(00-59)
%p 本地am或者pm的相应符
%S 秒(01-61)
%U 一年中的星期数(00-53,星期天是首日)第一个星期天之前的所有天数都放在第0周。
%w 一个星期中的第几天(0-6,0是周日)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00-99)
%Y 完整的年份
%Z 时区的名字(如果不存在为空字符)
%% '%'字符
这些格式化字符,不需要做记忆,会通过下面的代码进行讲解

1.time的用法

代码区 1

1 import time
2 
3 # 打印一个当前的时间戳
4 t = time.time()
5 print(t)
6 

4

1650187292.611

代码区 2

1 import time 
2 
3 # 返回当前系统的时间
4 t = time.localtime()
5 print(t)
6 

4

time.struct_time(tm_year=2022, tm_mon=4, tm_mday=17, tm_hour=17, tm_min=29, tm_sec=6, tm_wday=6, tm_yday=107, tm_isdst=0)

可以看到,localtime返回的是一个时间的元组,里面包含了,当前时间的年、月、日、小时、分秒等,当然看着和熟悉的电脑日期格式不太一样.

代码区 3

1 # 练习题  试着用前面学习到的四舍五入,对上面的时间戳取个整; 取出返回的元组时间里的年
2 

4

2.datetime用法

datetime根据字面意思主是date和time的组合, datetime模块,主要包含了5个类:

  • datetime.date:日期操作的类
  • datetime.datetime:日期时间操作的类
  • datetime.time:时间操作的类
  • datetime.timedelta:时间间隔,即两个时间点的间隔
  • datetime.tzinfo:时区的相关信息

代码区 4

1 import datetime as dt

2 # 获取今天的日期
3 today = dt.date.today()
4 print('今天是:', today)
5 
6 print('今年是:', today.year)
7 

4

今天是2022-04-17
今年是2022

代码区 5

1 import datetime as dt
2 #  获取当前的时间
3 now = dt.datetime.now()
4 print(now)
5 # 用到了上面的格式化字符,
6 print(now.strftime('%Y'))
7 

4

2022-03-21 14:21:43.026081
2022

代码区 6

1 # 练习题  试着输出更多格式的时间
2 

4

代码区 7

# 如何取到昨天的日期?
1 import datetime as dt
2 
3 today = dt.date.today()
4 
5 print('今天是:', today)
6 yesterday = today - dt.timedelta(days=-1)
7 print('昨天是:', yesterday)
8 

4

今天是2022-04-17
昨天是2022-04-18

代码区 8

1 # 练习题  算一下前天的日期  
2 

4