首页 > 其他 > 详细

time和datetime的常用方法

时间:2020-12-13 20:23:28      阅读:24      评论:0      收藏:0      [点我收藏+]

1.time模块

  time模块以下时间表示方法。

  • 第1种是:时间戳的方式。是基于1970年1月1日0时0分0秒的偏移。浮点数。
  • 第2种是:struct_time()类型的表示方法。gmtime()和localtime()可以将时间戳显示为struct_time()类型。
  • 第3种是:格式化时间。其中strftime()函数可以把struct_time()时间格式化显示。

1.1time模块的三类函数

1、时间获取:time()ctime()gmtime()

  • time.time() 获取当前时间,浮点数
import time

print(time.time())  # 1607849520.680959
  • time.ctime()获取当前时间并以易读方式表示,返回字符串
import time

print(time.ctime())  # Sun Dec 13 16:52:34 2020
  • time.gmtime()表示为计算机可处理的格式
import time

print(time.gmtime())  # time.struct_time(tm_year=2020, tm_mon=12, tm_mday=13, tm_hour=8, tm_min=53, tm_sec=20, tm_wday=6, tm_yday=348, tm_isdst=0)

2、时间格式化:strftime() strptime()

  • time.strftime(format[,t]): 根据参数转换一个sturc_time或元组为字符串。
import time
print(time.strftime("%Y-%m-%d", time.localtime()))  # 2020-12-13
  • time.strptime(string[, format]): 与strftime相反,返回一个struct_time。
import time
print(time.strptime("2020-12-13 16:56:22", "%Y-%m-%d %X"))  # time.struct_time(tm_year=2020, tm_mon=12, tm_mday=13, tm_hour=16, tm_min=56, tm_sec=22, tm_wday=6, tm_yday=348, tm_isdst=-1)

3、程序计时:sleep()perf_counter()

  • time.perf_counter() 返回一个cpu级别的精准时间计数值,单位为秒 计数值不缺定,连续调用差值有意义
  • time.sleep(s) s是休眠的时间 单位可以是秒可以是浮点数
import time
time.sleep(2)
print("暂停:", time.perf_counter())  # 暂停: 2.0616361

2.datetime模块

  datetime是python当中比较常用的时间模块,主要是输出格式化和操作提供高效的属性提取功能。

datetime.date 表示日期,常用的属性有:year, month和day
datetime.time 表示时间,常用属性有:hour, minute, second, microsecond
datetime.datetime 表示日期时间
datetime.timedelta 表示两个date、time、datetime实例之间的时间间隔,分辨率(最小单位)可达到微秒
datetime.tzinfo 时区相关信息对象的抽象基类。它们由datetime和time类使用,以提供自定义时间的而调整。
datetime.timezone 实现tzinfo抽象基类的类,表示与UTC的固定偏移量

1、datetime.datetime

  • datetime.datetime.now():返回系统当前时间(2020-07-16 18:39:55.921602)
  • datetime.datetime.now().date():返回当前时间的日期(2020-07-16)
  • datetime.datetime.now().time():返回当前时间的时分秒(18:40:24.946237)
  • datetime.datetime.ctime():将datetime.datetime类型转化成str类型
import datetime
a = datetime.datetime.now()
print(a)  # 2020-12-13 17:04:35.186835
timeapp = datetime.datetime.ctime(a)
print(type(timeapp))  # <class str>
print(timeapp)  # Sun Dec 13 17:03:36 2020

时间格式转化成字符串

import datetime
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))  # 2020-12-13 17:07:04

字符串转化成时间格式

a = datetime.datetime.strptime(2020-12-13 17:08:36, %Y-%m-%d %H:%M:%S)
print(type(a))  # <class datetime.datetime>
print(a)  # 2020-12-13 17:08:36

技术分享图片

2、datetime.timedelta

  timedelta对象表示两个不同时间之间的差值。如果使用time模块对时间进行算术运行,只能将字符串格式的时间和struct_time格式的时间对象先转换为时间戳格式,然后对该时间戳加上或减去n秒,最后再转换回struct_time格式或字符串格式,这显然很不方便。而datetime模块提供的timedelta类可以让我们很方面的对datetime.date, datetime.time和datetime.datetime对象做算术运算,且两个时间之间的差值单位也更加容易控制。

  datetime.timedelta()添加参数,如计算300天是几号。

import datetime
timeapp = datetime.datetime.now().date()
print(type(timeapp))  # <class datetime.date>
print(timeapp)  # 2020-12-13
delta = datetime.timedelta(days=300)
print(timeapp - delta)  # 2020-02-17

  datetime.timedelta()也可以多个参数,如计算300天12小时前的时间。

import datetime
timeapp = datetime.datetime.now()
print(type(timeapp))  # <class datetime.datetime>
print(timeapp)  # 2020-12-13 17:14:35.253393
delta = datetime.timedelta(days=300, hours=12)
print(timeapp - delta)  # 2020-02-17 05:14:35.253393

  计算天数和秒数。

import datetime

print(datetime.timedelta(days=1, hours=32).days)  # 2
print(datetime.timedelta(days=1, hours=32).total_seconds())  # 201600.0

 

time和datetime的常用方法

原文:https://www.cnblogs.com/zhuzhaoli/p/13871501.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!