18910140161

一文搞定Python的时间处理

顺晟科技

2021-06-16 10:48:08

304

时间模块

# -*- coding: utf-8 -*-

# author: inpurer(月小水长)

# pc_type联想

# create_date: 2018/12/3

# file_name: timetest.py

#描述:月短血不寒。

导入时间

t0=time.time()

#description:输出当前时间和1970.1.1之间的秒数,到小数点后6位,也称为时间戳

#输出样本15437 .1543795

打印(t0)

t1=time.localtime(t0)

#description:将时间戳转换为元组,该元组包含七个元素,其中前六个元素的名称已知。tm_wday指的是本周的某(索引从0开始),TM _ YDAY类似。tm_isdst是不是夏令时不重要。

# output sample : time . struct _ time(TM _ year=2018,tm_mon=12,tm_mday=3,tm_hour=9,tm_min=22,tm_sec=24,tm_wday=0,tm_yday=337,tm_isdst=0)

打印(t1)

#因此,您可以输出今天是今年的多少天

打印(t1[-2] 1)

#以下是元组的格式

#描述:简单可读的形式

#输出样本:周一12月3日09:31336018 2018

t2=time.asctime(t1)

打印(t2)

#description:可以通过参数设置成各种形式。下面是一个标准的表单,每个参数都有名字。

#输出样本: 2018-12-03 09:3:36

T3=time . str time(' % Y-% m-% d % h :% m :% S ',t1)

打印(t3)

#%y两位数年份表示(00-99)

# %Y四位数年份表示法(000-9999)

# %m月(01-12)

# %d天(0-31)

# %H 24小时制(0-23)

# % 12小时制(01-12)

# %M分钟(00=59)

# %S秒(00-59)

#

# %本地简化周名称

# %本地整周名称

# %b本地简化月份名称

# %B本地完整月份名称

# %c本地对应的日期表示和时间表示

# %j一年中的某(001-366)

# %p相当于当地上午或下午

# %U一年中的周数(00-53)星期日是一周的开始

# %w周(0-6),星期日是一周的开始

# %W一年中的周数(00-53)星期一是一周的开始

# %x本地对应日期表示

# %X本地对应时间表示

# %Z当前时区的名称

#%%%本身

#以下是如何将格式化的字符串转换成元组

# description:个参数是格式化的字符串,后一个参数对应于格式化,这便于反向格式化

# output sample : time . struct _ time(TM _ year=2018,tm_mon=12,tm_mday=3,tm_hour=9,tm_min=47,tm_sec=7,tm_wday=0,tm_yday=337,tm_isdst=-1)

T4=time . str time(T3,' %Y-%m-%d %H:%M:%S ')

打印(t4)

#将元组转换为时间戳

#description:是time.localtime的反函数,但由于格式原因,精度下降。

#输出样本: 1543801627.0

t5=time.mktime(t4)

打印(t5)

日期时间模块

# -*- coding: utf-8 -*-

# author: inpurer(月小水长)

# pc_type联想

# create_date: 2018/12/3

# file_name: timetest.py

#描述:月短血不寒。

导入日期时间

#您可以通过datetime.datetime.now()获取当前日期和时间的实例

#此实例是日期时间类对象,而不是字符串

#虽然直接打印此实例的输出是字符串,但它只是调用由datetime实现的__str__方法

t0=datetime.datetime.now()

print(t0 )# print : 2018-12-03 12:55:49 . 1888888886

print(type(t0))# print : class ' datetime . datetime '

#然后可以通过对象名的方法输出每次信息。该信息是整型的

print(t0.year) #print: 2018

print(type(t0 . year))# print : class ' int '

打印(t0 .月)

打印(t0.day)

打印(t0.hour)

打印(t0 .分钟)

打印(t0 .秒)

时间的存储和比较

救援

理论上,我们可以通过拼接datetime.datetime.now()实例的时间变量来构造自己想要的时间。比如我们想存储年-月-日等时间信息,我们可以做到:

导入日期时间

t0=datetime.datetime.now()

#注意年/月/日都是int类型,不像java可以直接拼接字符串和数字。

通缉时间=str(t0 . year)'-' str(t0 . month)'-' str(t0 . day)

但是,这样做会有一个很尴尬的问题。的格式不统一,可能会出现以下存储形式:

2018-1-1

2018-1-11

2018-11-1

2018-11-11

…………… .

尤其是数据量很大的时候,读起来非常费力。这是因为年/月/日都是int类型,所以1是1,不会显示为01。为了达到对齐效果,我们还必须格式化字符串。所以我们通常使用时间模块(其实datetime也有字符串的格式,只是扩展太多,没必要浪费那么多学习成本)

导入时间

t0=time.localtime()

通缉时间=time . str time(' % Y-% m-% d ',t0)

比较

就拿上面刚提到的“通缉_时间”来说,可以直接用,=,和这些符号来比较,因为“通缉_时间”是一个字符串。

我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航