首页 > 其他分享 >关于time模块的学习总结

关于time模块的学习总结

时间:2022-09-28 23:44:31浏览次数:69  
标签:总结 28 元组 tm 时间 模块 time print

1、Python中时间格式有三种:时间戳(Timestap)、时间元组(Struct_time)、字符串时间(Format string)。

下面来介绍下这三个时间

时间戳(Timestap):

例:

1 import time
2 print(time.time())

输出:

1664370911.143787

通过time.time()可以获得一个float型的数据,这个值是从1970纪元到现在这个时刻经过的浮点秒数。所以时间戳就是一个秒数。

时间元组(Struct_time):

1 import time
2 time1 = time.localtime()
3 print(type(time1))
4 print(time1)

输出:

<class 'time.struct_time'>

time.struct_time(tm_year=2022, tm_mon=9, tm_mday=28, tm_hour=21, tm_min=25, tm_sec=53, tm_wday=2, tm_yday=271, tm_isdst=0)

通过结果输出结果来看,虽然我们叫时间元组,但是并不是一个元组,而是一个特有的关于时间的数据结构。如果想获得这个“元祖”里的某一个值,比如年或者月,可以用索引获取。

例如,time1[0]的方式可以获得年,time1[1]可以获得月。当然Python里是有对应的类,所以可以通过属性获得。例如time1. tm_year可以获得年,time1. tm_mon可以获得月。

字符串时间(Format string):

如果说时间戳是给计算机看的,那么字符串时间就是给人看的。

例如:'2020-08-28:15:20:28'

2、三种时间的一个转换关系

(1)时间元组(Struct_time)转成字符串时间(Format string)

——time.strftime(format, p_tuple=None)

Strftime()参数有两个,format是字符串时间格式,必须写不能空缺;p_tuple是时间元组,可以空缺,如果空缺默认为当前时间。也就是说函数功能是将第二种数据类型转为第一种数据类型。

例如,我们想将现在的时间通过“2020-1-28 8:15:00”的形式表示出现在的时间来,要先将字符串格式定义好,即'%Y-%m-%d %H:%M:%S'。具体格式可以参照下表。

格式

含义

%a

本地(locale)简化星期名称

%A

本地完整星期名称

%b

本地简化月份名称

%B

本地完整月份名称

%c

本地相应的日期和时间表示

%d

月内中的一天(0-31)

%m

月份(01-12)

%M

分钟数(00-59)

%H

24小时制小时数(0-23)

%I

12小时制,01-12

%S

秒(00-59)

%j

一年中的第几天(001-366)

%p

本地am或者pm的相应符

%U

一年中的星期数。(00-53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。

%w

一个星期中的第几天(0-6,0是星期天)

%W

和%U基本相同,不同的是%W以星期一为一个星期的开始。

%x

本地相应日期

%X

本地相应时间

%y

去掉世纪的年份(00-99)

%Y

完整的年份

%Z

时区的名字 (如果不存在为空字符)

%%

‘%’字符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

时间戳的话用当前的时间,通过time.localtime()获得。

综上所述:

1 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))

输出:

2022-09-28 22:33:27

(2)字符串时间(Format string)转成时间元组(Struct_time)

               ——time.strptime(string, format)

在上一个例子中,我们获得的时间元祖是通过time.localtime()获得的,如果我们想创建一个时间元组,设置特定的时间点,该如何做呢?可以利用字符串时间转成时间元组。使用time.strptime()。

这个函数可以理解为是time.strftime()反过程,string相当于strftime()的返回结果,format就是strftime()中的format,通过%所表述的时间格式。

例如:

print(time.strptime("2022-09-28 22:33:27",'%Y-%m-%d %H:%M:%S'))

输出:

time.struct_time(tm_year=2022, tm_mon=9, tm_mday=28, tm_hour=22, tm_min=33, tm_sec=27, tm_wday=2, tm_yday=271, tm_isdst=-1)

(3)时间元组(Struct_time)转成时间戳(Timestap)

——mktime(p_tuple),参数为时间元组。

例如:

print(time.mktime(time.localtime()))

输出:

1664376976.0

前边提到过time.localtime()可以获得当前的时间元组,当然可以通过(2)部分自己构造一个特定的时间元组,这里不再尝试。

(4)时间戳(Timestap)转成时间元组(Struct_time)

           ——gmtime(seconds=None)参数为浮点数的秒,空缺默认为当前时间戳。
例如:
print(time.gmtime(1664376976.0))

time.struct_time(tm_year=2022, tm_mon=9, tm_mday=28, tm_hour=14, tm_min=56, tm_sec=16, tm_wday=2, tm_yday=271, tm_isdst=0)

time.gmtime()的用法看起来和time.localtime()都可以获得struct_time类型的时间元组,但是略有区别。

print(time.gmtime())
print(time.localtime())

输出:

time.struct_time(tm_year=2022, tm_mon=9, tm_mday=28, tm_hour=15, tm_min=8, tm_sec=45, tm_wday=2, tm_yday=271, tm_isdst=0)

time.struct_time(tm_year=2022, tm_mon=9, tm_mday=28, tm_hour=23, tm_min=8, tm_sec=45, tm_wday=2, tm_yday=271, tm_isdst=0)

简单来说,time.gmtime()获得的是UTL时间,time.localtime()获得的是北京时间。这两个时间相差8个小时。什么是UTL时间,大家可以自行查阅。

标签:总结,28,元组,tm,时间,模块,time,print
From: https://www.cnblogs.com/lgwdx/p/16739996.html

相关文章

  • SSM整合功能模块开发
    pojo层:pojo表结构,在domain包中新建一个pojo类对用数据库中的表生成get和set及无参有参构造  dao层:   service层:接口  实现类  controller层......
  • nginx架构分析之 模块化
    Nginx涉及到的模块分为核心模块、标准HTTP模块、可选HTTP模块、邮件服务模块以及第三方模块等五大类。核心模块核心模块是指Nginx服务器正常运行时必不可少的模块,它们提供了......
  • docker 简介和使用总结:image,container,dockfile,nginx,redis,compose
    硬件发展速度:asp.net+sql+redis+nginx:资源利用率太低,多软件工具不能隔离,相互影响,不能快速部署 0.docker简介和使用总结:image,container,dockfile,nginx,redis,compose......
  • Python之telnetlib模块
    telnetlib是python标准库中的一员,我们可以使用该模块以telnet的方式与服务器交互。请观察下面示例了解它的用法:importtelnetlibdefrun_telnet(host,username,password,......
  • 警告!别再使用 TIMESTAMP 作为日期字段~
    在日常数据库设计中,几乎每张业务表都带有一个日期列,用于记录每条记录产生和变更的时间。比如用户表会有一个日期列记录用户注册的时间、用户最后登录的时间。又比如,电商行......
  • golang之Time时间函数
    总结常用time包下的方法1)获取前一天的时间packagemainimport"time"nowTime:=time.Now()yesterdayTime:=nowTime.AddDate(0,0,-1);//年,月,日获取前一......
  • python-正则表达式re模块
    07、正则表达式学习正则表达式操作字符串re模块是用C语言写的没匹配速度非常快其中compile函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象,该对象拥有......
  • python-简单模块的使用
    提示:简单模块了解掌握@目录uuid模块calendar日历模块time模块datetime模块os模块sys模块random模块json和pickle模块jsonpickle模块hashlib模块configparser模块subproc......
  • Python错误:模块导入失败from scrapy.xlib.pydispatch import dispatcher
    问题描述:python中使用pip安装模块时,出现:Fatalerrorinlauncher:Unabletocreateprocessusing'"' 解决办法: 原因分析:scrapy版本不对。测试了一下,发现最......
  • java.lang.RuntimeException: Unable to instantiate class java.lang.Integer with v
    代码为@Value("${address.count}")privateIntegercount;单元测试中代码修改为@InjectableprivateIntegercount=1000;单元测试中类型没法自动转换,......