time和datetime的常用方法

1.time模块

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

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

1.1.time模块的三类函数

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)

2.datetime模块

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

datetime.date 表示日期,常用的属性有:year, month和day
datetime.time 表示时间,常用属性有:hour, minute, second, microsecond
datetime.datetime 表示日期时间
datetime.timedelta 表示两个date、time、datetime实例之间的时间间隔,分辨率(最小单位)可达到微秒

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

Python日期的加减等操作

posted @ 2020-12-13 17:18  博小园  阅读(329)  评论(0编辑  收藏  举报
回到顶部