python中日期和时间

与时间处理的有关模块有哪些

  • time
  • datetime
  • calendar

在python中,通常用时间戳、格式化的时间字符串和元组3种方式表示时间

时间戳

  • 时间戳(timestamp)表示从1970年1月1日00时00分00秒开始计算的偏移量

就是从那个时间开始到现在的总毫秒数。

    import time
    now = time.time()
    print(now)

最后输出的就是总毫秒


001.jpg

struct_time 元组

python的时间元组

序号 属性 字段
0 tm_year 4位数年 如2008
1 tm_mon 1~12
2 tm_mday 1~31
3 tm_hour 小时 1~23
4 tm_min 分钟 0~59
5 tm_sec 0~61(60或者61是闰秒)
6 tm_wday 一周的第几日 0~6(0是周一)
7 tm_yday 一年的第几日 1~366(儒略历)
8 tm_isdst 夏令时 -1,0,1,-1是决定是否为夏令的旗帜

time 模块

time()函数用于返回当前时间的时间戳

    import time  # 导入时间模块
    now = time.time()  # 第一个time代表时间的这个模块,后面time()代表函数,次函数不需要传参数
    print(now)

localtime([secs])函数

localtime()函数的作用是格式化时间戳为本地时间,如果secs参数未输入,就以当前时间为转换标准.

    import time  # 导入时间模块
    # time.localtime()中time为模块,localtime()为函数,次函数不穿参数就以现在的时间戳为参数,返回的是一个struct_time元组
    print('time.localtime():{}'.format(time.localtime()))
002.jpg

gmtime([secs])函数

gmtime()函数用于将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数secs表示从unix元年到现在总秒数。但,gmtime()的默认值为time.time(),函数返回time.struct_time类型的对象。

    import time  # 导入时间模块
    print(time.localtime())
    print(time.gmtime())   #返回的是函数默认值,即time.time()的struct_time的类型对象的UTC时间。

如图:上面为本地时间,下面一个为UTC时间


003.jpg

mktime(t)

mktime()函数用于执行与gmtime()、localtime()相反的操作,接收struct_time对象为参数,返回用秒数表示时间的浮点数。如果输入的值不合法,就会触发oberflowerror或者valueerror。

    import time  # 导入时间模块
    t = (2018,9,18,19,39,30,3,4,5)  # 输入一个结构化时间或者完整的9位数元组元素
    print(time.mktime(t))

asctime([t]) 函数

asctime([t])用于接手时间元组并且返回一个可读的形式为Sun Sep 24 08:09:45 2015(2016年9月24日 周日8时09分45秒)的字符串。

ctime([secs])函数

ctime()函数用于把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果未指定参数,就会默认将time.time()作为参数。ctime相当于asctime(localtime())。

    import time  # 导入时间模块 
    print(time.ctime(time.time()))  # 对现在的时间戳返,回一个可读形式的时间如下图。
004.jpg

sleeptime([secs])

sleep 函数用于推迟调用线程的运行,可以通过参数secs指定进程挂起的时间。

    import time  # 导入时间模块
    print(time.asctime())  # 设置一个对比进程开始的时间
    time.sleep(10)  # 推迟调用线程的运行,推迟10秒
    print(time.asctime())  # 再次查看推迟之后的时间
    # 结果如下图。
005.jpg

clock()函数

clock()函数是用于浮点数计算的秒数,返回cpu当前的时间,用来衡量程序的耗时。unix上为“进程时间”。

    import time  #导入时间函数
    for i in range(100000):  #写一个for 循环
        print(i)
    print(time.clock())  # 返回进程的耗时

strftime()函数

strftime()函数用于接受时间元组,并返回可读字符串表示当地时间,格式由参数format 决定。

    import time  # 导入时间模块
    t = (2018,9,18,19,39,30,3,4,5)  # 写一个结构化时间或9位元素元组
    t = time.mktime(t)  # 转换为时间秒数
    print(time.strftime('%b %d %Y %H:%M:%S',time.localtime(t)))  # 返回可读字符串的当地时间,其中time.localtime()函数会把秒数转化为当地的一个结构化时间
006.jpg

strptime()函数

strptime()函数用于根据指定的格式把一个时间字符串解析为时间元组

    import time  # 导入time模块
    t = ('2018-09-09','%Y-%m-%d')  #定义一个时间字符串,后面跟着其多对应的时间格式,要切记,当用‘-’连接时,后面格式就用'-',如何是/,后面也用/
    print(t)
007.jpg

三种时间格式的相互转化

  • format string-->(time.strptime())-->struct_time-->(time.gmtime())-->timestamp

  • timestamp-->(time.localtime())-->struct_time-->(timee.strptime())-->format time
    struct_time-->(time.asctime())-->%a %b %d %H:%M:%S %Y 串<--(timee.ctime())--timestamp

datetime模块。

datetime是date和time 的结合体,功能强大,支持从0001年到9999年。即datetime.MINYEAR和datetime.MAXYEAR。
datetime模块下的5个类:

  • datetime.date 表示日期的类。常用的属性有,year,month,day
  • datetime.time 表示时间的类。常用的属性有 hour,minute,second,microsecond
  • datetime.datetime 表示日期时间。
  • datetime.timedelta 表示时间间隔,即两个时间点之间的长度
  • datetime.tzinfo 与时区有关的相关信息。

其中datetime.datetime类应用最为普遍和广泛。

taday()

datetime.datetime.today() 表示返回一个当前的本地时间的datetime对象。

    import datetime # 导入datetime模块
    print(datetime.datetime.today())  #datetime.datetime是类
008.jpg

now()

和tadoy()基本相似,却别就是now()接受参数,如果不写,默认为当地时间,或者传入一个参数所指时区的本地时间。

    import time
    print(datetime.datetime.now())  # 在此没有传入参数,则默认为所在时区所指的本地时间。返回结果的形式和today()相同,类型都是datetime.datetime类

datetime.utcnow()

返回一个当前utc(0时区)的时间对象.

    import datetime
    print(datetime.datetime.utcnow())  #返回一个utc时间的datetime类。类型为datetime.datetime

fromtimestamp(timestamp[,tz])

根据时间戳创建一个datetime对象,tz为指定时区信息

    import datetime,time  # 导入了两个模块,一个time用于获取时间戳
    print(datetime.datetime.fromtimestamp(time.time()))  #参数tz我们提供一个当前时间的时间戳
009.jpg

utcfromtimestamp(timestamp)

根据时间戳创建一个datetime类,不过返回的是utc时间的对象。

    import time
    print(datetime.datetime.utcfromtimestamp(time.time()))

对比fromtimestamp()和utcfromtimestamp()


010.jpg

strptime(date_string,format)

将格式字符串转换为datetime对象,date_string值日期字符串,format为格式化方法

    import datetime
    d_t = datetime.datetime.now()
    print("strptime 是",datetime.datetime.strptime(str(d_t),'%Y-%m-%d %H:%M:%S.%f'))
    print("strptime 是",datetime.datetime.strptime('2018-09-09 20:34:25','%Y-%m-%d %H:%M:%S'))
011.jpg

strftime(format)

把时间转为字符串格式,即str类

    import datetime
    now = datetime.datetime.now()  #获取现在的本地的时间
    print(now)
    now_str = datetime.datetime.strftime(now,'%Y-%m-%d %H:%M:%S') # 把时间转为字符串格式
        # datetime.datetime.strptime() # (cls,date_str,format) # 把字符串转为时间类型
    print(now_str)
    print(type(now_str))  #可以看出now_str 为str类
    n_day = '2017/8/20'
    time = now - datetime.datetime.strptime(n_day,'%Y/%m/%d')  #这个可以看出当时间为datetime.datetime类时,时间可以进行相互计算。
    print(time)
012.jpg
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容