Python中的时间元组与时间日期是什么意思
本篇内容介绍了"Python中的时间元组与时间日期是什么意思"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、时间元组(time.struct_time)
python中时间元组是一个比较重要的类型,通过时间元组我们可以获取,年月日时分秒,星期几,一年中的第几天等信息。
索引 | 属性 | 属性含义 | 属性取值 |
---|---|---|---|
0 | tm_year | 4位数年份 | 0000-9999 |
1 | tm_mon | 月 | 1-12 |
2 | tm_mday | 日 | 1-31 |
3 | tm_hour | 小时 | 0-23 |
4 | tm_min | 分钟 | 0-59 |
5 | tm_sec | 秒 | 0-61,60、61是闰秒 |
6 | tm_wday | 星期几 | 0-6,0是周一 |
7 | tm_yday | 一年的第几天 | 1到366,366闰年 |
8 | tm_isdst | 夏令标识 | 1-夏令时,0-非夏令时 -1-不确定,可能是因为手动创建 |
import time#localtime = time.localtime()# time.struct_time(tm_year=2019, tm_mon=11, tm_mday=3, tm_hour=9, tm_min=8, tm_sec=21, tm_wday=0, tm_yday=307, tm_isdst=0)print(type(localtime))print(localtime)for attr in localtime: print(attr)
二、时间格式化
时间格式化是非常常用的一个功能,不管是从字符串到struct_time、date、datetime,还是从struct_time、date、datetime到字符串都需要用到。
格式化主要涉及到2个函数: strftime:str表示字符串,f是format,time是时间,就是时间格式化为字符串 strptime:str表示字符串,p是parse,time是时间,就是字符串解析为时间
time和datetime都有这2个函数,后面会介绍,下面先看一下格式化的含义。
格式 | 含义 |
---|---|
%y | 两位数的年份表示,00-99 |
%Y | 四位数的年份表示,0000-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 | 第几周,00-53,星期一为星期的开始 |
%w | 星期几,0-6,星期天为星期的开始 |
%x | 本地日期 |
%X | 本地时间 |
%Z | 当前时区的名称 |
%% | %符合,因为被当做转义字符 |
三、time
time模块,主要处理和时间元组(struct_time)的格式化和解析。
当日也有本地化时间、获取时间戳,程序休眠等函数。
注意和datetime.time区分,datetime.time就是一般意义上的日期时间中的时间部分,主要就是时分秒。
import time# 格林威治天文时间元组print(time.gmtime())print(time.gmtime(1577851199))# 本地时间元组print(time.localtime())print(time.localtime(1577851199))# 格式化时间# time.asctime([tupletime])print(time.asctime())# time.ctime([secs])print(time.ctime())# 格式化成2020-01-01 11:59:59形式print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))# 将格式字符串转换为时间戳a = "2020-01-01 11:59:59"str2TT = time.strptime(a, "%Y-%m-%d %H:%M:%S")# 时间元组到时间戳ts = time.mktime(str2TT)print(ts)# 时间戳print(time.time())# 休眠秒time.sleep(1)
四、datetime
datetime模块中主要使用的是: datetime.date:日期(2025-01-01) datetime.time:时间(12:00:00) datetime.datetime:时期(2025-01-01 12:00:00)
import datetimeimport timetoday = datetime.date.today()print(today)print(type(today))# 星期几,isoweekday星期天是第一天,weekday星期一是第一天print(today.isoweekday())print(today.weekday())# 时间元组print(today.timetuple())# 第几天print(today.toordinal())datetime.date.fromordinal(today.toordinal())print(datetime.date(2020, 1, 1))datetime.date.fromtimestamp(time.time())print(datetime.time(12, 59, 59, 999))# 现在本地日期print(datetime.datetime.now())# 现在utc日期print(datetime.datetime.utcnow())print(datetime.datetime(2020, 1, 31, 12, 59, 59, 0))# 字符串到日期print(datetime.datetime.strptime('2020-1-1 12:01', '%Y-%m-%d %H:%M'))# 日期格式化print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M'))
最常用的还是:
# 字符串得到日期datetime.datetime.strptime('2020-1-1 12:01', '%Y-%m-%d %H:%M')# 日期格式化datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
五、timedelta
timedelta也是datetime模块下的,主要是用于日期计算的。
在需要使用到时间间隔的时候非常有用,例如需要上一个月,前一天,上一周这样的日期,就可以使用datetime和timedelta很容易得到。
import datetimeimport timetoday = datetime.date.today()# 上个月最后一天lastMonthLastDay = datetime.date(today.year, today.month, 1) - datetime.timedelta(1)print(lastMonthLastDay)# 上个月第一天lastMonthFirstDay = datetime.date(lastMonthLastDay.year, lastMonthLastDay.month, 1)print(lastMonthFirstDay)# 一周之前print(today - datetime.timedelta(7))# 本周一thisMonday = today - datetime.timedelta(today.isoweekday()-1)print(thisMonday)# 本周星期天lastMonday = thisMonday - datetime.timedelta(7)print(lastMonday)# 上周星期天lastSunday = today - datetime.timedelta(days=today.isoweekday())print(lastSunday)# 上周星期一lastMonday = lastSunday - datetime.timedelta(days=6)print(lastMonday)# 8小时后print(datetime.datetime.now() + datetime.timedelta(hours=8))start = datetime.datetime.now()time.sleep(1)end = datetime.datetime.now()diff = end - start#print(type(diff))print(diff)
六、calendar
import calendar# 是否是闰年print(calendar.isleap(2020))
calendar是日历
"Python中的时间元组与时间日期是什么意思"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!