pythontime库mktime_Python处理日期时间的标准库:time和datetime

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于Python之王 ,作者小sen

前言

time和datetime是Python处理日期和时间的标准库。在我们项目的实际开发当中使用率是非常高的。datetime模块有四个重要的类,date,time,datetime,以及timedelta类,分别表示的是日期对象、时间对象、日期时间对象和时间差对象。

时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。注意:目前Python中支持的最大的时间戳为32535244799(3001-01-01 15:59:59)

Python的time块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳。例如:

import time

time.time() #返回当前时间的时间戳 2000年时间戳 都是10位

1557212908.1839943

# 获取毫秒级别的时间戳(爬虫参数基本用14位时间戳加密)

int(round(time.time() * 1000))

1557212908183

在编写代码时,往往涉及时间、日期、时间戳的相互转换。

「str类型的日期转换为时间戳」

import time

# 字符类型的时间

t = '2019-05-07 15:08:28'

# 转为时间数组

timeArray = time.strptime(t, "%Y-%m-%d %H:%M:%S")

print(timeArray)

# timeArray可以调用tm_year等

print(timeArray.tm_year)   # 2019

# 转为时间戳

timeStamp = int(time.mktime(timeArray))

print(timeStamp)  # 1381419600

# 结果如下

time.struct_time(tm_year=2019, tm_mon=5, tm_mday=7, tm_hour=15, tm_min=8, tm_sec=28, tm_wday=1, tm_yday=127, tm_isdst=-1)

2019

1557212908

「字符串格式更改」

# "2019-05-07 15:08:28" 改为 "2019/5/7 15:08:28"

# 先转换为时间数组

import time

str_time = "2019-05-07 15:08:28"

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

other_way_time = time.strftime("%Y/%m/%d %H:%M:%S", time_array)

print(other_way_time)   # 2019/05/07 15:08:28

now = datetime.datetime.now()

otherStyleTime = now.strftime("%Y--%m--%d %H:%M:%S")

print(otherStyleTime) # 2019--05--07 15:08:28

「时间戳转时间日期」

import time

import datetime

# 使用time

timeStamp = 1557212908

timeArray = time.localtime(timeStamp)

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

print(otherStyleTime)   # 2019--05--07 15:08:28

# 使用datetime

timeStamp = 1557212908

dateArray = datetime.datetime.fromtimestamp(timeStamp)

otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")

print(otherStyleTime)   # 2019--05--07 15:08:28

# 使用datetime,指定utc时间,相差8小时

timeStamp = 1557212908

dateArray = datetime.datetime.utcfromtimestamp(timeStamp)

otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")

print(otherStyleTime)   # 2019--05--07 07:08:28

Datetime

datetime模块是在time模块的基础之上做了封装,提供了更多更好用的类供我们使用,常用的有date、time、datetime、timedelta、tzinfo。但是为了更灵活的处理时间,最好是将time模块和datetime模块中的精髓学习到。

date类

date类:主要用于处理年、月、日。

date类的构造函数如下:datetime.date(year, month, day)

示例:

from datetime import date

d = date(1999, 9, 29)

print(d)

print('year:', d.year)

print('month:', d.month)

print('day:', d.day)

具体输出:

1999-09-29

year: 1999

month: 9

day: 29

time类

time类:主要用于处理小时、分钟、秒。

time类的构造函数如下:datetime.time(hour[,minute[,second[,microsecond[,tzinfo]]]])

示例:

from datetime import time

t = time(22, 45, 59)

print(t)

print('hour:', t.hour)

print('minute:', t.minute)

print('second:', t.second)

print('microsecond:', t.microsecond) #微秒

print('格式化输出:', t.strftime('%H:%M:%S'))

print('Earliest  :', datetime.time.min)

print('Latest    :', datetime.time.max)

输出:

22:45:59

hour: 22

minute: 45

second: 59

microsecond: 0

格式化输出:22:45:59

Earliest  : 00:00:00

Latest    : 23:59:59.999999

datetime子类

datetime子类是date对象和time对象的结合体,是datetime的子类,和它的方法很类似。

它的构造函数如下:

datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]]),

各参数的含义与date、time的构造函数中的一样,要注意参数值的范围。

「获取当前日期和时间」

>>> from datetime import datetime

>>> now = datetime.now() # 获取当前datetime

>>> print(now)

2019-05-07 16:28:07.198690

>>> print(type(now))

timedelta类

timedelta类是用来计算二个datetime对象的差值的。可以进行加减乘除运算的,它的实例化方法和datetime对象很类似 此类中包含如下属性:

(1) days:天数。

(2) microseconds:微秒数(>=0并且<1秒)。

(3) seconds:秒数(>=0并且<1天)。

两个date或datetime对象相减就可以返回一个timedelta对象。

import datetime as dt

date1=dt.date(2020,10,28)

timedel=dt.timedelta(days=4)

print('四天后的日期是:', date1+timedel)

四天后的日期是:2020-11-01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: time.mktime() 是 Python 中的一个函数,用于将时间元组转换为时间戳。时间戳是指从 197 年 1 月 1 日 00:00:00 UTC 到指定时间的秒数。该函数的参数是一个时间元组,包含年、月、日、时、分、秒等信息。函数返回值是一个浮点数,表示指定时间时间戳。 ### 回答2: Python中的time.mktime()函数是用来将时间元组(包含时间信息的数据结构)转换为时间戳的函数。时间戳是一个浮点数,表示从1970年1月1日0时0分0秒的UTC时间开始,到当前时间的秒数。时间戳的整数部分表示从1970年开始的秒数,小数部分表示微秒数。 time.mktime()函数的使用非常简单,只需要传入一个时间元组对象即可。时间元组包含了年、月、日、小时、分钟、秒、周几、一年中的第几天等信息。 例如,以下代码演示了如何使用time.mktime()函数将一个时间元组转换为时间戳: import time tup = (2021, 9, 1, 10, 30, 0, 2, 0, 0) timestamp = time.mktime(tup) print("时间戳为:", timestamp) 输出结果为:“时间戳为:1630475400.0”。这表示从1970年1月1日0时0分0秒开始到2021年9月1日10时30分0秒的UTC时间为1630475400秒。 需要注意的是,time.mktime()函数默认使用本地时区,如果需要使用UTC时间,则需要使用time.gmtime()函数将时间元组转换为UTC时间后再调用time.mktime()函数。 总之,time.mktime()函数是在Python中处理时间相关操作时非常常用的一个函数,掌握它的使用方法可以方便我们进行时间计算和处理。 ### 回答3: Python中的time模块提供了许多函数来操作时间日期。其中,time.mktime() 函数用于将本地时间转换为时间戳。时间戳是自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来的秒数。换句话说,它是从 Unix 纪元(称为 Unix 时间或 POSIX 时间)开始的秒数。 函数原型如下: time.mktime(t) 其中 t 为一个 struct_time 类型的时间元组,它表示了本地时间。该元组的 9 个元素分别为: struct_time( tm_year=2021, # 年份 tm_mon=3, # 月份 tm_mday=18, # 日 tm_hour=13, # 小时 tm_min=33, # 分 tm_sec=23, # 秒 tm_wday=3, # 星期(0-6,0表示星期一) tm_yday=77, # 一年中的第几天(1-366) tm_isdst=-1 # 是否为夏令时,默认-1表示自动判断 ) 函数返回值为一个浮点数,代表了时间元组所表示的时间时间戳。 例如,以下代码将本地时间元组转换为时间戳: import time t = (2021, 3, 18, 13, 33, 23, 3, 77, -1) timestamp = time.mktime(t) print(timestamp) 输出为: 1616068403.0 需要注意的是,time.mktime() 函数处理时间是本地时间,而不是 UTC 时间。因此,当系统的时区发生变化时,该函数的结果也会相应地改变。为了避免这种情况,可以使用 time.gmtime() 函数将时间转换为 UTC 时间,再使用 time.mktime() 函数将它转换为时间戳。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值