美文网首页
python中日期和时间

python中日期和时间

作者: 甚得朕心 | 来源:发表于2018-08-22 20:49 被阅读0次

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

  • 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

相关文章

网友评论

      本文标题:python中日期和时间

      本文链接:https://www.haomeiwen.com/subject/htfuiftx.html