今天是第17天,在Python中通常用时间戳,时间字符串和元组三种方式表示,今天学习的是time和datetime常用时间和日期函数的用法
一、日期和时间的处理
1,时间戳
指1970年1月1日0时0分0秒起到现在的总毫秒数
>>> import time
>>> time.time()
1615343718.404042
2,时间格式化符号
常用的格式化符号
%a 本地简化星期名称
%b 本地简化月份名称
%c 本地相应日期和时间
%d 一月中第几天
%H 一天第几个小时(24小时制)
%I 一天第几个小时(12小时制)
%p 本地AM和PM的相应符
%j 一年中第几天
%m 月份(1-12)
%Y 年份
%W 一年中的星期数(周一为一星期开始)
%w 一星期中的第几天
3,struct_time元组
Python用一个元组装起9组数字处理时间(年,月,日,时,分,秒,一年中第几周,一年中第几天,是否为夏令时),如下
(tm_year=2021, tm_mon=3, tm_mday=10, tm_hour=10, tm_min=56, tm_sec=54, tm_wday=2, tm_yday=69, tm_isdst=0)
4,time模块
time()--返回当前时间的时间戳
>>> t=time.time()
>>> t
1615345014.9244344
localtime()--格式化时间戳为本地时间
>>> time.localtime(t)
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=10, tm_hour=10, tm_min=56, tm_sec=54, tm_wday=2, tm_yday=69, tm_isdst=0)
gmtime()---将一个时间戳转化为utc时区(0时区)的struct_time
>>> time.gmtime(t)
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=10, tm_hour=2, tm_min=56, tm_sec=54, tm_wday=2, tm_yday=69, tm_isdst=0)
mktime()---与gmtime相反,转化为时间戳
>>> time.mktime(time.gmtime(t))
1615316214.0
asctime---将时间元组转化为'Wed Mar 10 10:56:54 2021'这个格式的字符串
>>> time.asctime(time.localtime(t))
'Wed Mar 10 10:56:54 2021'
ctime---将时间戳转化为特定格式的字符串
>>> time.ctime(t)
'Wed Mar 10 10:56:54 2021'
strftime(format[,t])---将时间元组转化为自定义格式的字符串
>>> time.strftime('%Y%b%d %H:%M:%S',time.localtime(t))
'2021Mar10 10:56:54'
strptime(string[,format])----将字符串解析为时间元组
>>> time.strptime('2021Mar10 10:56:54','%Y%b%d %H:%M:%S')
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=10, tm_hour=10, tm_min=56, tm_sec=54, tm_wday=2, tm_yday=69, tm_isdst=-1)
5,datetime模块
定义了5个类
datetime.date:属性有year,month,daydatetime.time:属性有hour,minute,second,microseconddatetime.datetime:表示日期时间datetime.timedelta:表示时间间隔datetime.tzinfo:与时区相关的信息
datetime应用最广泛,包含函数
today()---当前本地时间
>>> import datetime
>>> t=datetime.datetime.today()
>>> t
datetime.datetime(2021, 3, 10, 11, 26, 15, 956112)
now()----返回指定时区的本地时间
>>> datetime.datetime.now()
datetime.datetime(2021, 3, 10, 11, 26, 40, 186426)
datetime.utcnow()---返回utc时间
>>> datetime.datetime.utcnow()
datetime.datetime(2021, 3, 10, 3, 26, 51, 541843)
fromtimestamp()---根据时间戳创建指定时区参数的一个datetime对象
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2021, 3, 10, 11, 27, 57, 43525)
strptime(date_string,format)--将字符串转换为datetime对象
>>> t.strptime('2021Mar10 10:56:54','%Y%b%d %H:%M:%S')
datetime.datetime(2021, 3, 10, 10, 56, 54)
strftime(format)---将datetime对象转换为字符串
>>> t.strftime('%Y%b%d ')
'2021Mar10 '
举报/反馈