概述
作为 Python 中最常用的两个关于时间的模块-datetime 和 time,你是否经常搞混或者用得稀里糊涂呢,是否只是知其然而不知其所以然?
一、基本概念:
时间戳 timestamp:指格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起至现在的总毫秒数。
二、time 模块:
三种对象:时间戳(float)、时间对象(tuple)、格式化时间(string)
1、创建
创建时间戳
import time
time.time()#返回一个 时间戳 浮点数
创建时间对象
import time
time.localtime() #返回一个 时间对象 【本地时间 元组】
time.gmtime() #返回一个 时间对象 【格林尼治时间 元组】
创建格式化时间
import time
time.strftime("%Y-%m-%d %X") #返回一个 格式化时间 字符串
2、三种对象互换
时间戳&时间对象
import time
time.mktime(time.localtime()) #将 时间对象 转换为 时间戳
time.localtime(time.time()) #将 时间戳 转换为 时间对象 【当地时间】
time.gmtime(time.time()) #将 时间戳 转换为 时间对象 【格林尼治时间 GM】
时间对象&格式化时间
import time
#将 时间对象 转换为 格式化时间
time.strftime('%Y-%m-%d %X',time.localtime()) #(自定义格式) 【当地时间】
time.strftime('%Y-%m-%d %X',time.gmtime())# (自定义格式) 【格林尼治时间 GM】
time.asctime(time.localtime()) #(格式固定) 【本地时间】
#将 格式化时间(字符串) 转换为 时间对象
time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X')
时间戳&格式化时间
import time
time.ctime(time.time()) #将 时间戳 转换为 格式化时间(格式固定)
#没有能直接将 格式化时间 转化为 时间戳 的方法
三、datetime 模块
四个类型:date 类、time 类、datetime 类、deltatime 类
1、创建对象
date 类——需要提供三个参数 年,月,日
import datetime
a = datetime.date(2008,8,8) #(年,月,日)
time 类——需要提供三个参数 时,分,秒
import datetime
a = datetime.time(12,8,8) #(时,分,秒)
datetime 类——需要提供六个参数 年,月,日,时,分,秒
datetime相当于把date类和time类结合起来
import datetime
a = datetime.datetime(2018,8,8,12,8,8) #(年,月,日,时,分,秒)
timedelta 类——需要提供天,小时,分钟,秒
import datetime
a = datetime.timedelta(8,12,8,8) #(日,时,分,秒)
2、date类
类方法
import datetime
datetime.date.today() # 返回一个表示当前本地日期的date对象;
datetime.date.fromtimestamp(timestamp)# 根据给定的时间戮,返回一个date对象;
实例化后调用方法和属性
import datetime
d1 = datetime.date(2008,8,8) # date对象
d1.year #年
d1.month #月
d1.day #日
d1.weekday() # 返回weekday,欧美标准
d1.isoweekday() #返回weekday,国内标准
d1.strftime(fmt):和time模块格式化相同。
3、time类
实例化后调用方法和属性
import datetime
t1 = datetime.time(12,8,8) #time对象
t1.hour #时
t1.minute #分
t1.second #秒
t1.isoformat() # 返回型如"HH:MM:SS"格式的字符串表示
t1.strftime(fmt) #和time模块中的format相同
4、datetime类
类方法
import datetime
datetime.datetime.today() # 返回一个datetime对象 【本地时间】
datetime.datetime.now([tz]) #返回一个表示datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间
datetime.datetime.fromtimestamp(timestamp[, tz]) #根据时间戮创建一个datetime对象,参数tz指定时区信息
datetime.datetime.combine(date, time) # 根据date和time,创建一个datetime对象;
datetime.datetime.strptime(date_string, format) #将 格式字符串 转换为 时间对象;
实例化后调用方法和属性
import datetime
dt=datetime.datetime.now() #datetime对象
dt.year、month、day、hour、minute、second、microsecond # 获取该对象的年月日时分秒
dt.date() #获取date对象;
dt.time() #获取time对象;
dt. weekday () #返回今天是周几 【欧美星期】
dt. isoweekday () #返回今天是周几 【中国星期】
dt. strftime (format) #将 时间对象 转换为 格式字符串
5、timedelta类
主要用于时间的加减,类似于数学上的 delta
import datetime
dt = datetime.now() #返回今天的时间对象
dt1 = dt - timedelta(days=1) #今天+1天=昨天
dt2 = dt + timedelta(days=1) ##今天-1天=昨天
时间对象加减只能与date类、datetime类以及timedelta类进行加减
四、总结
time模块主要是用来表示时间
datetime模块主要是用于时间的加减运算
(另外,因为笔者能力有限,如有疏漏,不妥的地方还请读者见谅,还望多多指教。)
【参考】
time模块文档:
https://docs.python.org/zh-cn/3/library/time.htmldocs.python.orgdatetime模块文档:
datetime --- 基本的日期和时间类型 - Python 3.8.2 文档docs.python.org最后
以上就是喜悦康乃馨为你收集整理的datetime python 时分秒_聊一聊Python中datetime和time模块的全部内容,希望文章能够帮你解决datetime python 时分秒_聊一聊Python中datetime和time模块所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复