python之time和datetime模块

醉里挑灯看剑,梦回吹角连营。八百里分麾下炙,五十弦翻塞外声。沙场秋点兵。
马作的卢飞快,弓如霹雳弦惊。了却君王天下事,赢得生前身后名。可怜白发生!

几个术语了解

  • 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日开始按秒计算的偏移量(time.gmtime(0))此模块中的函数无法处理1970纪元年以前的时间或太遥远的未来(处理极限取决于C函数库,对于32位系统而言,是2038年)
  • UTC(Coordinated Universal Time,世界协调时)也叫格林威治天文时间,是世界标准时间.在我国为UTC+8
  • DST(Daylight Saving Time)即夏令时

一、time模块的使用

  • time.time()
    获取当前时间戳(以秒为单位的浮点型的时间戳)
    print(time.time())
    >>>1539847769.6119404
  • time.localtime(seconds=None)
    默认获取当前时间的结构化时间
    print(time.localtime())
    >>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=18, tm_hour=15, tm_min=35, tm_sec=0, tm_wday=3, tm_yday=291, tm_isdst=0)
  • time.mktime(p_tuple)
    将结构化时间转化成时间戳格式
    print(time.mktime(time.localtime()))
    >>>1539849828.0
    注意和time.time()的区别:
    print(time.time())
    1539849828.090503
  • time.strftime(format, p_tuple=None)
    格式化时间(字符串)
    print(time.strftime("%Y-%m-%d %H:%M:%S"))
    >>>2018-10-18 15:56:42
  • time.strptime(string, format)
    将格式化时间转成结构化时间
    print(time.strptime("2018-10-18 15:56:42","%Y-%m-%d %H:%M:%S"))
    >>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=18, tm_hour=15, tm_min=56, tm_sec=42, tm_wday=3, tm_yday=291, tm_isdst=-1)
  • time.gmtime(seconds=None)
    默认当前UTC时间转结构化时间,与英国伦敦当地时间一致
    print(time.gmtime(time.time()))
    >>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=18, tm_hour=8, tm_min=10, tm_sec=16, tm_wday=3, tm_yday=291, tm_isdst=0)
  • time.sleep(secends)
    线程推迟指定的时间运行

附一:


image.png

附二:time时间之间的转换


image.png

二、datetime 模块的使用

datetime模块定义了5个类,分别是

  • 1.datetime.date:是指年月日构成的日期(相当于日历)
  • 2.datetime.datetime:是指时分秒微秒构成的一天24小时中的具体时间(相当于手表)
  • 3.datetime.time:上面两个合在一起,既包含时间又包含日期
  • 4.datetime.timedelta:表示时间间隔,即两个时间点的间隔
  • 5.datetime.tzinfo:时区的相关信息

1. datetime.date类

  • date类有三个参数,datetime.date(year,month,day),返回year-month-day
    print(datetime.date(2017,12,1))
    >>>2017-12-01
  • datetime.date.today()
    获取当前时间的年月日
    print(datetime.date.today())
    >>>2018-10-18
  • datetime.date.isoweekday(cls)
    获取指定日期是星期几,1=周一,7=周天
    a = datetime.date.today()
    print(datetime.date.isoweekday(a))
    >>>4
  • datetime.date.weekday(cls)
    获取指定日期是星期几,0=周一,6=周天
    a = datetime.date.today()
    print(datetime.date.weekday(a))
    >>>3
  • datetime.date.fromtimestamp(时间戳)
    将时间戳转化成特定格式的年月日
    print(datetime.date.fromtimestamp(1539847769))
    >>>2018-10-18
  • cls.timetuple() 将特定格式的日期转化成结构化时间
    a = datetime.date.today()
    print(a.timetuple())
    >>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=291, tm_isdst=-1)
  • cls.replace(year=2010) 替换指定的年月日
    a = datetime.date.today()
    print(a.replace(year=2010))
    >>>2010-10-18

2. datetime.time类

  • time类有5个参数,datetime.time(hour,minute,second,microsecond,tzoninfo)
    print(datetime.time(8,5,32))
    print(datetime.time(8,5,32,32))
    >>>08:05:32
    >>>08:05:32.000032

  • cls.strftime("时间格式")
    指定时间格式
    a= datetime.time(8,5,32,32)
    print(a.strftime("%H:%M"))
    >>>08:05

  • cls.replace()
    替换时分秒
    a= datetime.time(8,5,32,32)
    print(a.replace(hour=18))
    >>>18:05:32.000032

  • datetime.time.tzname()
    返回时区名字:略

  • datetime.time.utcoffset()
    返回时区的时间偏移量:略

3. datetime.datetime类

datetime模块类的使用大同小异,有很多方法我们可能这辈子都用不上,datetime类的方法比较多,在这里我就捡重点的列一下:

  • datetime.datetime.now()或者datetime.datetime.today()
    得到当前的具体时间(不指定时区时两个方法一样的效果)
    print(datetime.datetime.now())
    >>>2018-10-18 19:15:17.691425
  • datetime.datetime.now().date()
    返回当前时间的年月日部分
    print(datetime.datetime.now().date())
    >>>2018-10-18
  • datetime.datetime.now().time()
    返回当前时间的时分秒...部分
    print(datetime.datetime.now().time())
    >>>19:16:54.497104
  • datetime.datetime.strftime()
    由日期格式转化为字符串格式
    print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    >>>2018-10-18 19:21:13
  • datetime.datetime.strptime()
    由字符串格式转化为日期格式
    a = datetime.datetime.strptime("2018-10-18 19:21:37",'%Y-%m-%d %H:%M:%S')
    print(a,type(a))
    >>>2018-10-18 19:21:37 <class 'datetime.datetime'>

4. datetime.timedelta类

datetime.datetime.timedelta用于计算两个日期之间的差值:

import datetime

a = datetime.datetime(2015, 10, 3)

b = datetime.datetime.now()

res1 = (b - a)
res2 = (b - a).days   //  取时间差天数
res3 = (b - a).seconds   // 取时间差时分秒部分的秒数总和
res4 = (b - a).microseconds  // 取时间差 秒数之后的微秒数
res5 = (b - a).total_seconds()  // 时间差的总秒数

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

推荐阅读更多精彩内容

  • 文/白萍 人,总要寒心一次 才知道世界的真真假假 并不是谁都能以心换心 人,总要寒心一次 才知道人生并非只有喜乐 ...
    悟姑娘阅读 323评论 2 5
  • 静气三分钟。 倒扑。
    土家阅读 109评论 0 0
  • 同事小林是我们单位的“高富帅”,阳光帅气,家境殷实,工作能力也很不错,单位许多女同事都芳心暗许。 不过小林一直单身...
    露水丸子阅读 831评论 3 12
  • 夏雨第三天作业 1怎样成为生活的驯化大师 2此情,无关风月——不期轮回 3我不必道歉,这是我的命运 4你的世界不能...
    冰心茉莉阅读 824评论 0 0