Python札记47_日期和时间相关标准库

在生活中,我们每个人总是和日期、时间打交道。在 Python中有关于时间的模块来实现。

  • calendar
  • time
  • datatime

calendar

calendar是和日历相关的库,看下具体文档:

>>import calendar
>>dir(calendar)
...(省略部分)
 'calendar',    # 返回某年的日历
 'datetime',
'isleap',   #  isleap(year) 判断是否是闰年
 'month',  # 返回某个月份
'leapdays',  # leapdays(y1,y2)  返回的是两年之间的闰年总数 
'weekday'     # weekday(year, month, day)输入参数年月日返回的是星期几
...(省略部分)
data1 = calendar.month(2019, 7)   # month ()方法
print(data1)
image.png
  • month() 返回某个月
  • calendar(year, w=2, l=1, c=6):3个月一行,间距为c,每日宽度为w
  • isleap(year):判断是否是闰年
  • leapdays(y1, y2):判断两个年份时间中闰年数


    image.png

time模块

time模块是非常常用的模块,比如计算某个程序运行的时间长短。

time()

time.time()获取的是当前时间(严格地说是时间戳,以1970年1月1日00:00:00开始计时)。


  • timestamp:是指在一连串的数据中心加入辨识文字,如时间或者日期等,用以保障本地端local和远程remote一致。

localtime()

localtime()方法中总共会获取9个数据:

time.localtime()
Out[6]: time.struct_time(tm_year=2019, tm_mon=7, tm_mday=17, tm_hour=23, tm_min=26, tm_sec=30, tm_wday=2, tm_yday=198, tm_isdst=0)
索引 属性 含义
0 tm_year
1 tm_mon
2 tm_mday
3 tm_hour
4 tm_min
5 tm_sec
6 tm_wday 一周中的第几天
7 tm_yday 一年中的第几天
8 tm_isdst 夏令时
image.png
  • localtime()方法是有参数的,可以用时间戳来传入,来获取当前的时间。
time.localtime(1000)
Out[7]: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=16, tm_sec=40, tm_wday=3, tm_yday=1, tm_isdst=0)

gmtime()

localtime()得到的是本地时间,gmtime()得到的是国际化时间。

astime()

  • time.astime()的参数为空时,默认是time.localtime()的值为参数,得到的是当前日期、时间和星期。
  • time.astime()的参数必须是元组形式


    image.png

ctime()

  • 不写参数的话,默认和asctime()方法相同
  • 参数必须是时间戳的格式
time.ctime()
Out[3]: 'Thu Jul 18 22:31:21 2019'   # 结果和asctime()
time.ctime(100000)
Out[4]: 'Fri Jan  2 11:46:40 1970'   # 参数必须是时间戳形式

mktime()

以时间元组为参数,返回的时间戳格式。

b = time.localtime()
b
Out[6]: time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=22, tm_min=44, tm_sec=34, tm_wday=3, tm_yday=199, tm_isdst=0)
time.mktime(b)  # 传入时间元组格式
Out[7]: 1563461074.0   # 返回的是时间戳格式

小结

方法 作用
time() 得到时间戳
localtime() 得到当地时间;参数是时间戳
结果列表形式,得到时间元组。时间戳--->时间元祖
gmtime() 国际化时间,结果是时间元组
asctime() 参数为空:默认是time.localtime()的值为参数
若传入参数:必须是时间元组
ctime() 参数为空:结果和asctime()相同
若传入参数,必须是时间戳形式
mktime() 时间元组为参数,得到的是时间戳。时间元组--->时间戳

strftime()

将时间元组按照指定格式转化为字符串,如果不指定时间元组,默认是localtime()的值。时间元组--->字符串

格式 含义 取值范围(样式)
%y 去掉世纪的年份 00-99,如“19”
%Y 完整的年份 如2019
%j 指定日期是一年中的第几天 范围001-366
%m 返回的是月份 范围:01-12
%b 本地简化月份的名称 简写的英文月份
%B 本地完整月份的名称 完整的英文月份
%d 该月的第几日 如,5月1日返回的是“01”
%H 第几小时,24小时制 00-23
%l 第几小时,12小时制 00-12
%M 分钟 00-59
%S 00-59
%U 该年中的第几个星期(周日为一周的起点) 00-53
%W 同上,周一为起点 00-53
%w 一个星期中的第几天 0-6
%Z 时区 在大陆测试返回的是CST
%x 日期 日/月/年
%X 时间 时:分:秒
%c 详细日期时间 日/月/年时:分:秒
%% %字符 '%'字符
%p 上下午 AM or PM
time.strftime("%y-%m-%d")
Out[8]: '19-07-18'
time.strftime("%Y-%m-%d")
Out[9]: '2019-07-18'
time.strftime("%c")
Out[10]: 'Thu Jul 18 23:20:50 2019'
time.strftime("%y-%m-%d-%H-%M-%S")
Out[11]: '19-07-18-23-20-58'

strptime()

将字符串转化为时间元组。参数有两个:一个是字符串,一个是时间字符串所对应的格式(见上表)。字符串--->时间元组

a = time.strftime("%y-%m-%d")
a
Out[15]: '19-07-18'
time.strptime(a, "%y-%m-%d")
Out[16]: time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=199, tm_isdst=-1)

datetime()

  • date:日期类,常见的属性:year/month/day
  • time:时间类,常见的属性:hour/minute/second/microsecond
  • datetime:日期时间类
  • timedelta:时间间隔,两个时间之间的时间长度
  • tzinfo:时区类
image.png
image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容