赞
踩
目录
将格式化字符串转换为时间戳strptime(str,tpl)
1.11.获取当前时间戳
时间戳:当前系统中表示时间的一个浮点数
- import time
- time.time() #获取当前时间戳(计算机内部时间)
- # 1643336568.9237003
日期范围:1970-2038,超过此范围应该使用datetime模块
表示从1970.1.1. 0:0开始到当前时刻的秒数
1970年之前的日期无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
1.2 获取当前时间,返回字符串
可基于时间戳进行转换
- time.ctime()
- #'Fri Jan 28 10:27:03 2022'
-
-
- #可以传入时间戳格式时间,用来做转化
- import time
- timestamp = time.time()
- timestr = time.ctime(timestamp)
- timestr
- #'Sat Jan 29 15:21:48 2022'
2.1.获取当前时间,返回计算机程序可以处理的时间格式:struct_time形式
localtime() 返回当前时间的struct_time形式,可传入时间戳格式时间,用来做转化
gmtime() 返回当前时间的struct_time形式,UTC时区(0时区) ,可传入时间戳格式时间,用来做转化
- time.gmtime()
- #time.struct_time(tm_year=2022, tm_mon=1, tm_mday=29, tm_hour=7, tm_min=34, tm_sec=50, tm_wday=5, tm_yday=29, tm_isdst=0)
-
- time.localtime()
- #time.struct_time(tm_year=2022, tm_mon=1, tm_mday=29, tm_hour=15, tm_min=34, tm_sec=21, tm_wday=5, tm_yday=29, tm_isdst=0)
struct_time元组——时间元组
2.3 时间戳→时间元组
时间戳→时间元组:将时间戳浮点数传递给gmtime函数
- # 可传入时间戳格式时间,用来做转化
- time.gmtime(time.time())
- #time.struct_time(tm_year=2022, tm_mon=1, tm_mday=29, tm_hour=7, tm_min=29, tm_sec=34, tm_wday=5, tm_yday=29, tm_isdst=0)
时间戳→时间元组:将时间戳浮点数传递给localtime函数
- localtime = time.localtime(time.time())
- localtime
- #time.struct_time(tm_year=2022, tm_mon=1, tm_mday=28, tm_hour=10, tm_min=48, tm_sec=35, #tm_wday=4, tm_yday=28, tm_isdst=0)
2.4 时间元组→时间戳
- time.mktime(time.localtime())
- #1643441791.0
- time.mktime(time.gmtime())
- #1643413005.0
2.2 asctime() 返回字符串形式的时间
可基于时间元组获取易读的格式化当前时间
- time.asctime()
- #'Sat Jan 29 15:27:43 2022'
-
- #asctime() 返回字符串形式的时间,可以传入struct_time形式时间,用来做转化
- time.asctime(localtime)
- #'Fri Jan 28 10:48:35 2022'
-
- time.asctime(time.gmtime())
- 'Sat Jan 29 07:24:00 2022'
tpl:定义输出效果
ts:struct_time元组
- # 格式化成2022-01-28 03:04:00形式
- time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
- #'2022-01-28 03:04:00'
-
- # 格式化成Fri Jan 28 03:07:14形式
- time.strftime("%a %b %d %H:%M:%S",time.gmtime())
- #'Fri Jan 28 03:07:14'
str:字符串形式的时间值
tpl:定义输入效果
- timestr = '2022-01-28 03:04:00'
-
- time.strptime(timestr,"%Y-%m-%d %H:%M:%S")
-
- #time.struct_time(tm_year=2022, tm_mon=1, tm_mday=28, tm_hour=3, tm_min=4, tm_sec=0, #tm_wday=4, tm_yday=28, tm_isdst=-1)
python中时间日期格式化符号:
- %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 当前时区的名称
- %% %号本身
包括的类:
date:表示日期的类。常用的属性有year, month, day
time:表示时间的类。常用的属性有hour, minute, second, microsecond
datetime:表示日期时间
timedelta:表示时间间隔,即两个时间点之间的长度
tzinfo:与时区有关的相关信息
均为不可变对象
表示日期的类
常用类方法和类属性
max、min:date对象所能表示的最大、最小日期
resolution:date对象表示日期的最小单位。这里是天
today():返回一个表示当前本地日期的date对象
fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象
fromordinal(ordinal):将Gregorian日历时间转换为date对象(特殊历法用不上)
- import time
- from datetime import date
- date.max
- #datetime.date(9999, 12, 31)
- date.min
- #datetime.date(1, 1, 1)
- date.resolution
- #datetime.timedelta(days=1)
- date.today()
- #datetime.date(2022, 1, 29)
- date.fromtimestamp(time.time())
- #datetime.date(2022, 1, 29)
实例方法和属性:
.year:返回年
.month:返回月
.day:返回日
.replace(year, month, day):生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)
.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推
.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推
.isocalendar():返回格式如(year, wk num, wk day)
.isoformat():返回格式如’YYYY-MM-DD’的字符串
.strftime(fmt):自定义格式化字符串。与time模块中的strftime类似。
.toordinal():返回日期对应的Gregorian Calendar日期
- today = date.fromtimestamp(time.time())#today存储了一个类对象
- today.year
- #2022
- today.month
- #1
- today.day
- #29
- lastyear_today = today.replace(2020,1,29)
- #lastyear_today
- #datetime.date(2020, 1, 29)
-
- lastyear_today.weekday()
- #2
- lastyear_today.isoweekday()
- #3
- lastyear_today.isocalendar()
- #datetime.IsoCalendarDate(year=2020, week=5, weekday=3)
- lastyear_today.isoformat()
- #'2020-01-29'
- lastyear_today.strftime("%Y-%m-%d %H:%M:%S")
- #'2020-01-29 00:00:00'
- lastyear_today.toordinal()
- #737453
类属性和方法:
min、max:time类所能表示的最小、最大时间。其中,time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999)
resolution:时间的最小单位,这里是1微秒
- from datetime import time
- time.min
- datetime.time(0, 0)
- time.max
- datetime.time(23, 59, 59, 999999)
- time.resolution
- datetime.timedelta(microseconds=1)
实例方法和属性:
.hour、.minute、.second、.microsecond:时、分、秒、微秒
.tzinfo:时区信息
.replace([hour[, minute[, second[, microsecond[, tzinfo]]]]]):创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变);
.isoformat():返回型如”HH:MM:SS”格式的字符串表示;
.strftime(fmt):返回自定义格式化字符串。
- time()#time类的构造函数
- datetime.time(0, 0)
-
- myTime = time(22)
- myTime.hour
- #22
- myTime.minute
- #0
- myTime.second
- #0
- myTime.microsecond
- #0
-
- nextime = myTime.replace(22,30)
- #nextime.isoformat()
- '22:30:00'
- #nextime.strftime("%Y-%m-%d %H:%M:%S")
- '1900-01-01 22:30:00'
date与time的结合体,包括date与time的所有信息
类属性与方法:
min、max:datetime所能表示的最小值与最大值;
resolution:datetime最小单位;
today():返回一个表示当前本地时间的datetime对象;
now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
utcnow():返回一个当前utc时间的datetime对象;
fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
combine(date, time):根据date和time,创建一个datetime对象;
strptime(date_string, format):将格式字符串转换为datetime对象;
- import datetime
- datetime.datetime(1970,1,29,1,1,1,1)#构造函数
-
- datetime.datetime.max
- #datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)
- datetime.datetime.min
- #datetime.datetime(1, 1, 1, 0, 0)
- datetime.datetime.resolution
- #datetime.timedelta(microseconds=1)
- datetime.datetime.today()#返回一个表示当前本地时间的datetime对象
- #datetime.datetime(2022, 1, 29, 17, 50, 13, 688511)
- datetime.datetime.now()
- #datetime.datetime(2022, 1, 29, 17, 50, 30, 577492)
- datetime.datetime.utcnow()
- #datetime.datetime(2022, 1, 29, 9, 50, 43, 658491)
- import time
- datetime.datetime.fromtimestamp(time.time())
- #datetime.datetime(2022, 1, 29, 17, 51, 20, 359494)
- datetime.datetime.utcfromtimestamp(time.time())
- #datetime.datetime(2022, 1, 29, 9, 51, 35, 160494)
-
-
- mydate = datetime.date.today()
- mytime = datetime.time(22,30,30)
- mydatetime = datetime.datetime.combine(mydate,mytime)
- timestr = '2022-01-28 03:04:00'
-
- lastdate = datetime.datetime.strptime(timestr,"%Y-%m-%d %H:%M:%S")
实例方法与属性:
- today = datetime.datetime.today()#返回一个表示当前本地时间的datetime对象
- today.year
- #2022
- today.month
- #1
- today.day
- #29
- today.hour
- #18
- today.minute
- #2
- today.second
- #50
- today.microsecond
- #431511
-
- mydate = today.date()#获取date对象
- mytime = today.time()#获取time对象
-
- today.replace(2020,1,29,18,5)
- #datetime.datetime(2020, 1, 29, 18, 5, 50, 431511)
- today.timetuple()
- #time.struct_time(tm_year=2022, tm_mon=1, tm_mday=29, #tm_hour=18, tm_min=2, tm_sec=50, tm_wday=5, tm_yday=29, tm_isdst=-1)
- today.utctimetuple()
- #time.struct_time(tm_year=2022, tm_mon=1, tm_mday=29, #tm_hour=18, tm_min=2, tm_sec=50, tm_wday=5, tm_yday=29, tm_isdst=0)
- today.toordinal()
- #738184
- today.weekday()
- #5
- today.isocalendar()
- datetime.IsoCalendarDate(year=2022, week=4, weekday=6)
- today.isoformat()
- #'2022-01-29T18:02:50.431511'
- today.ctime()
- #'Sat Jan 29 18:02:50 2022'
- today.strftime("%Y-%m-%d %H:%M:%S")
- #'2022-01-29 18:02:50'
时间间隔对象
构造函数:
class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
1.没有必填参数
2.两个时间间隔对象可以彼此之间相加或相减
3.一个datetime对象减去一个时间间隔对象,返回对应减去之后的datetime对象
4.两个datetime对象相减返回的是一个时间间隔对象
5.对date,time同样适用
- delta1 = datetime.timedelta(days=1)
- today = datetime.datetime.today()
- yesterday = today - delta1
- #yesterday
- datetime.datetime(2022, 1, 28, 20, 24, 7, 609998)
- delta2 = datetime.timedelta(days=2)
- delta3 = delta1 + delta2
- #threeDaysago = today - delta3
- threeDaysago
- datetime.datetime(2022, 1, 26, 20, 24, 7, 609998)
-
- yearsago = datetime.datetime(1970,1,29)
- today = datetime.datetime.today()
- dalte1 = today - yearsago
- dalte1
- #datetime.timedelta(days=18993, seconds=73770, microseconds=59842)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。