Python time模块_时间格式

time模块

time模块用于提供和实现时间相关的功能

名词解释

  • GMT – ‘Greenwich Mean Time(格林威治标准时间)’,是英国的标准时间,也是世界各地时间的参考标准;格林威治子午线上的地方时或零时区(中时区)的区时叫做格林威治时间,也叫’世界时’,GMT是根据地球的自转和公转来计算时间;
  • UTC – ‘Universal Time Coordinated(协调世界时)’,又称世界统一时间、世界标准时间、国际协调时间,UTC是根据原子钟来计算时间,UTC更加精确;
  • 时间戳 – 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数;
  • CST – CST可代表4个不同的时区的标准时间
    • 1.Central Standard Time (USA) UT-6:00
    • 2.Central Standard Time (Australia) UT+9:30
    • 3.China Standard Time UT+8:00
    • 4.Cuba Standard Time UT-4:00
  • DST – ‘Daylight Saving Time(夏令时)’,又称’日光节约时制’,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为’夏令时间’;

time模块常用函数

获取当前时间的时间戳

时间戳处理时间范围 从纪元(1970)至2038

>>> time.time()
1639718657.5933406
>>> 

获取当前时间的struct_time时间元组对象

>>> time.localtime()
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=17, tm_hour=13, tm_min=24, tm_sec=33, tm_wday=4, tm_yday=351, tm_isdst=0)
>>> 
>>> time.gmtime()
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=17, tm_hour=5, tm_min=36, tm_sec=11, tm_wday=4, tm_yday=351, tm_isdst=0)
>>> 

struct_time时间元组对象中获取时间信息

>>> now = time.localtime()
>>> now.tm_year     # 获取年
2021
>>> now.tm_mon     # 获取月
12
>>> now.tm_mday     # 获取日
17
>>> now.tm_hour     # 获取时
13
>>> now.tm_min     # 获取分
30
>>> now.tm_sec     # 获取秒
5
>>> now.tm_wday     # 获取星期,0-6,0是周一
4
>>> now.tm_yday     # 获取一年中的第几天
351
>>> now.tm_isdst     # 获取是否夏令时
0
>>> 

获取当前时间特定str格式的时间

>>> time.asctime()
'Fri Dec 17 13:40:41 2021'
>>> 
>>> time.ctime()
'Fri Dec 17 13:40:42 2021'
>>> 

获取本时区的时间偏移

>>> time.timezone
-28800
>>> 

获取本地时区名称

>>> time.tzname
('CST', 'CST')
>>> 

time模块各时间格式间互相转换

时间戳和struct_time对象互相转换

>>> now = time.localtime()
>>> print(now)
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=17, tm_hour=13, tm_min=48, tm_sec=31, tm_wday=4, tm_yday=351, tm_isdst=0)
>>> time.mktime(now)
1639720111.0
>>> 
>>> 
>>> time.localtime(3600)     # 考虑时区
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=9, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
>>> time.gmtime(3600)     # 不考虑时区
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=1, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
>>>
>>> now_stamp = time.time()
>>> time.localtime(now_stamp)
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=17, tm_hour=14, tm_min=19, tm_sec=36, tm_wday=4, tm_yday=351, tm_isdst=0)
>>> time.gmtime(now_stamp)
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=17, tm_hour=6, tm_min=19, tm_sec=36, tm_wday=4, tm_yday=351, tm_isdst=0)
>>> 

时间戳转换为特定str格式

>>> time.time()
1639721056.227222
>>> 
>>> time.ctime(time.time())
'Fri Dec 17 14:04:19 2021'
>>> 
>>> time.ctime(1234567890)
'Sat Feb 14 07:31:30 2009'
>>> 

struct_time对象转换为特定str格式

>>> time.asctime(time.localtime())
'Fri Dec 17 14:05:42 2021'
>>> 

struct_time对象与任意str互相转换

python中时间日期格式化符号:
%y 两位数的年份表示(00-99),数值 69–99 被映射为 1969–1999;数值 0–68 被映射为 2000–2068
%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 时区偏移以格式 +HHMM 或 -HHMM 形式的 UTC/GMT 的正或负时差指示
%Z 当前时区的名称
%% %号本身

>>> now = time.localtime()
>>> print(now)
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=17, tm_hour=13, tm_min=48, tm_sec=31, tm_wday=4, tm_yday=351, tm_isdst=0)
>>> time.strftime('%Y-%m-%d %H:%M:%S %A', now)
'2021-12-17 13:48:31 Friday'
>>> time.strftime('%x %X %j', now)
'12/17/21 13:48:31 351'
>>> 
>>> 
>>> time_str_test = '21-12-17 13:48:31'
>>> time.strptime(time_str_test,'%y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=17, tm_hour=13, tm_min=48, tm_sec=31, tm_wday=4, tm_yday=351, tm_isdst=-1)
>>> 
>>> time.asctime()
'Fri Dec 17 14:00:37 2021'
>>> time.strptime(time.asctime(),'%c')
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=17, tm_hour=14, tm_min=1, tm_sec=17, tm_wday=4, tm_yday=351, tm_isdst=-1)
>>> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值