python中的time、datetime模块

1.time时间模块

1.1.获取当前时间戳

使用time模块中的time()函数可以获取当前时间的时间戳。当前的时间戳应为1970年1月1日到函数执行时的秒数值。例如,

import time  # 导入time模块

t1 = time.time()
print(t1)

执行结果如下,

1582457981.234377

记得要导入time模块。

1.2.时间戳与时间元组的转换

1.2.1.时间戳转化为时间元组

时间戳可以转化为0时区的时间元组或者转化为当前时区的时间元组。

我们先使用gmtime()函数将时间戳转化为0时区的时间元组。

t2 = time.gmtime(t1)
print(t2)

执行结果如下,

time.struct_time(tm_year=2020, tm_mon=2, tm_mday=23, tm_hour=11, tm_min=46, tm_sec=32, tm_wday=6, tm_yday=54, tm_isdst=0)

注意,由于当前时间的改变t1的值发生了变化。

因为我们所在的中国为东8区,所以我们不能直接使用t2的结果。所以,我们现在来用localtime()函数将当前时间戳转化为当前时区的时间元组。

t3 = time.localtime(t1)
print(t3)

执行结果如下,

time.struct_time(tm_year=2020, tm_mon=2, tm_mday=23, tm_hour=19, tm_min=49, tm_sec=57, tm_wday=6, tm_yday=54, tm_isdst=0)
1.2.2.将时间元组转换为时间戳

我们可以使用mktime()函数将时间元组转化为时间戳。例如,

print(time.mktime(t3))

执行结果如下,

1582458724.0

1.3.时间元组与时间字符串的转换

1.3.1.将时间元组转化为时间字符串

我们需要使用使用strftime()函数将时间元组转化为时间字符串。

strftime()函数需要传入两个参数,第一个参数是我们想要的时间字符串格式,第二个参数是要转化的时间元组。

以下为时间字符串的格式,

在这里插入图片描述
例如,我们将t3时间元组转换为“ 年 月 日 时:分:秒”的格式,

str1 = time.strftime("%Y %m %d %H:%M:%S", t3)
print(str1)

执行结果如下,

2020 02 23 19:59:50
1.3.2.将时间字符串转换为时间元组

我们可以使用strptime()函数将时间字符串转换为时间元组。strptime()函数同样有两个函数,第一个函数时时间字符串,第二个参数是时间字符串对应的格式。

例如,我们将字符串"2020 02 23 20:03:37"转换为时间元组,

print(time.strptime("2020 02 23 20:03:37", "%Y %m %d %H:%M:%S"))

执行结果如下,

time.struct_time(tm_year=2020, tm_mon=2, tm_mday=23, tm_hour=20, tm_min=3, tm_sec=37, tm_wday=6, tm_yday=54, tm_isdst=-1)

1.4.休眠

time模块中的sleep()函数可以使程序在执行到sleep()的时候暂停指定的秒数。

例如,我们来做一个10次的循环,并且每次循环都间隔2秒钟,

for i in range(10):
    print(i)
    time.sleep(2)  # 休眠2秒钟

我们执行时会发现每次打印i之间会间隔2秒钟。

2.datetime模块

2.1.获取当前的时间和日期

使用datetime模块中的now()函数可以直接输出当前的时间和日期。

from datetime import datetime

dt1 = datetime.now()
print(dt1)

执行结果如下,

2020-02-23 20:14:15.662153

2.1.获取指定时间和日期

datetime()函数可以获取指定的时间和日期。datetime()函数最多输入7个参数,分别为年、月、日、时、分、秒、微秒。

例如,获取2020年2月23日,

dt2 = datetime(2020, 2, 23)
print(dt2)

执行结果如下,

2020-02-23 00:00:00

2.2.获取年、月、日、时、分、秒、微秒

我们来获取dt1的年、月、日、时、分、秒、微秒,

print(dt1.year)  # 获取年
print(dt1.month)  # 获取月
print(dt1.day)  # 获取日
print(dt1.date())  # 获取年月日
print(dt1.time())  # 获取时分秒微秒

执行结果如下,

2020
2
23
2020-02-23
20:23:29.938045

2.3.将日期转换为字符串

我们使用strftime()函数将dt1转换为字符串,

print(dt1.strftime("%Y %m %d %H:%M:%S"))

datetime模块中的格式化标识符与time模块基本一致。

2.4.时间与时间戳的转换

我们可以使用timestamp()函数将时间转换为时间戳。例如,

ts1 = dt1.timestamp()
print(ts1)

执行结果如下,

1582460997.201557

2.5.时间加减

我们可以直接将两个日期相减得出间隔。例如,

td = dt1 - dt2
print(td)

执行结果如下,

20:36:13.495821

我们也可以从datatime中导入timedelta模块来进行计算。

timedelta()函数可以将某个日期赋给变量,并用来计算。例如,我们要计算dt2加上3天是什么日期,

from datetime import timedelta

td1 = timedelta(days=3)
dt3 = dt2 + td1
print(dt3)

执行结果如下,

2020-02-26 00:00:00
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值