python基础-time和datetime模块(python中datetime.datetime)

网友投稿 711 2022-06-21


time模块和datetime模块

time模块

time模块中时间表现的格式主要有3种:

timestamp 时间戳:表示的是从1970年01月01日 00:00:00开始按秒计算的偏移量。即从1970年01月01日 00:00:00 距离当前时间,以秒为单位的总时间

Format String 格式化时间: 已格式化的结构使时间更具可读性。包括自定义格式和固定格式。可用于拼接用户时间格式并保存使用

struct_time 格式化时间对象:时间元组,元组中有9个元素组,分别代表:年、月、日、时、分、秒、一周的第几天(0-6),一年的第几天,是否为夏令时(-1)

时间格式转换图

注意:格式化时间转化为时间戳,再转化为格式化时间时,gmtime()和localtime()结果可能会相差一天

原因:gmtime转出来的是格林威治标准时间,localtime是将时区考虑在内了

import time

# time() 获取当前时间戳

timestamp1 = time.time()

print(f"当前时间戳:{timestamp1}") # 输出结果:1573889052.7453291

# 获取当前年月日(yyyy-MM-dd)

str_day = time.strftime("%Y-%m-%d")

print(f"格式化后的年月日:{str_day}") # 输出结果:2019-11-16

# 获取当前年月日时分秒(yyyy-MM-dd hh:mm:ss)

# %X 和 %H:%M:%S 效果是一样的

str_time = time.strftime("%Y-%m-%d %H:%M:%S")

str_time1 = time.strftime("%Y-%m-%d %X") # 建议使用这种

print(f"[%H:%M:%S]格式化后的年月日时分秒:{str_time}")

# 输出结果:2019-11-16 15:24:12

print(f"[%X]格式后的年月日时分秒:{str_time1}")

# 输出结果:2019-11-16 15:24:12

# localtime() 获取当前时区时间对象,东八区(北京时间)

time_obj = time.localtime()

print(f"localtime获取的时间对象:{time_obj}")

# gmtime() 获取格林威治时间对象

time_obj2 = time.gmtime()

print(f"gmtime获取的时间对象:{time_obj2}")

# 时间戳转换成时间对象 localtime/gmtime

struct_stamp = time.localtime(time.time())

struct_stamp2 = time.gmtime(time.time())

print(f"localtime:{struct_stamp}")

print(f"gmtime:{struct_stamp2}")

# mktime() 将时间对象转换成时间戳

stamp_mk = time.mktime(time.localtime())

print(f"当前时间对象:{stamp_mk}")

# 格式化时间转换成时间对象 strptime

struct_for = time.strptime("2019-10-22", "%Y-%m-%d")

print(f"strptime:{struct_for}")

# 时间戳转换成格式化时间 ctime

res = time.ctime(1573888219)

print(res) # 固定的时间格式:Sat Nov 16 15:10:19 2019

# 时间对象转换成格式化时间 asctime

# 2019-09-18 17:23:34 后续3个数字随意输入的

tup_time = (2019, 9, 18, 17, 23, 34, 1, 3, 14)

res_time = time.asctime(tup_time)

print(res_time) # 固定的时间格式:Tue Sep 18 17:23:34 2019

strftime的格式码

格式

含义

%Y

年份,例:2019

%m

月份,格式为XX,[01-12]

%d

天,格式为XX, [01,31].

%H

时,24小时制, [00,23].

%M

分, [00,59].

%S

秒 [00,61]. 60是闰秒,61因历史原因保留

datetime模块

import datetime

# 获取当前年月日

print(datetime.date.today())

# 获取当前年月日时分秒

print(datetime.datetime.today())

# datetime.datetime.today() 获取的是一个时间对象

time_obj = datetime.datetime.today()

print(f"年:{time_obj.year}")

print(f"月:{time_obj.month}")

print(f"日:{time_obj.day}")

'''

日期/时间的计算

日期时间 = 日期时间 “+” or “-” 时间对象

时间对象 = 日期时间 “+” or “-” 日期时间

'''

# 当前时间

current_time = datetime.datetime.now()

# timedelta:日期时间间隔对象

time_object = datetime.timedelta(days=7)

# 获取7天之后的时间

later_time = current_time + time_object

print(later_time)

# 日期/时间 之间计算,返回时间对象

timestamp = current_time - later_time

print(timestamp)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python基础(29):网络编程(软件开发架构、网络基础、套接字初使用)
下一篇:python基础(30):黏包、socket的其他方法(python socket抓包)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~