python常用数据类型--时间日历

python常用数据类型--时间日历

一.Python程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。

二.常用操作:time模块,calendar模块,datetime模块

1.  time模块

什么是时间戳?

时间戳:从0时区1970年1月1日0时0分0秒,到所给定日期时间的秒数。(浮点数)

(1)获取当前时间戳

获取方式:

import time (导入模块)

time.time()


import time

times = time.time()
print(times)  # 1527690960.7093856
# 打印1970到现在的年数
print(times / 24 / 60 / 60 / 365)  # 48.44276509839056


(2)获取时间元组

概念:很多python时间函数将时间处理为9个数字的元组。

获取方式:

import time

time.localtime([seconds]):seconds可选的时间戳,否则默认当前的时间戳。

【范例】利用time.localtime([seconds])获取时间元组。

import time

now_time = time.localtime()
print(now_time)
# time.struct_time(tm_year=2018, tm_mon=6, tm_mday=1, tm_hour=21, tm_min=9, tm_sec=36, tm_wday=4, tm_yday=152, tm_isdst=0)

(3)获取格式化时间

秒 -> 可读时间:

import time

time.ctime([seconds]):可选的时间戳,默认当前时间戳

【范例】格式化当前时间。

import time

t = time.time()
print(t)  # 1527858885.4739273
print(time.ctime(t))  # Fri Jun  1 21:14:45 2018

时间元组 -> 可读时间:

import time

time.asctime([p_tuple]):可选的时间元组,默认当前时间元组

【范例】格式化时间元组。

import time

time_tuple = time.localtime()
print(time.asctime(time_tuple))  # Fri Jun  1 21:15:47 2018

(4)格式化日期字符串 < -- > 时间戳

时间元组 - > 格式化日期

time.strftime(格式字符串,时间元组)

【范例】以%Y-%m-%d %H:%M:%S格式输出年月日时分秒。

import time

now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(now_time)  # 2018-06-01 21:20:34

格式化日期 - > 时间元组

time.strptime(日期字符串,格式符字符串)

time.mktime(时间元组)

【范例】将已格式化的日期重新转化成时间元组,并转换成时间戳。

import time

# 将已格式化的日期重新转化成时间元组
now_time = time.strptime("2018-06-01 21:20:34", "%Y-%m-%d %H:%M:%S")
print(now_time)
# time.struct_time(tm_year=2018, tm_mon=6, tm_mday=1, tm_hour=21, tm_min=20, tm_sec=34, tm_wday=4, tm_yday=152, tm_isdst=-1)
# 将时间元组转换成时间戳
t = time.mktime(now_time)
print(t)  # 1527859234.0

(5)获取当前CPU时间

time.clock():浮点数的秒数

可以用来统计一段程序代码的执行耗时

【范例】统计一段程序执行时间。

import time

start = time.clock()
for i in range(0, 100):
    print(i)

end = time.clock()
print(end - start)  # 0.0007913316849822489

(6)休眠n秒:推迟线程的执行,简单理解为让程序暂停。

time.sleep(secs)

【范例】每隔1秒打印一个数。

import time

i = 0
while i < 4:
    print(i)
    time.sleep(1)
    i += 1

2. calendar模块:提供与日历相关的功能,比如:给定值的月份或年份打印文本日历的功能。

(1)提供与日历相关的功能,比如:为给定的月份或年份打印文本日历的功能。

(2)获取某月日历:

import calendar

calendar.month(2018,6)

【范例】查看2018年6月的日历。

import calendar

print(calendar.month(2018, 6))

运行结果:

3. datetime模块:python处理日期和时间的标准库。可以做一些计算之类的操作。

(1)获取当天日期

import datetime

print(datetime.datetime.now())

print(datetime.datetime.today())

【范例】获取当天日期。

import datetime

print(datetime.datetime.now())  # 2018-06-01 21:41:13.677463
print(datetime.datetime.today())  # 2018-06-01 21:41:13.677464

(2)单独获取当前的年月日时分秒

【范例】获取当前日期的年月日,时分秒。

import datetime

t = datetime.datetime.now()
print(t.year)  # 2018
print(t.month)  # 6
print(t.day)  # 1
print(t.hour)  # 21
print(t.minute)  # 34
print(t.second)  # 54

(3)计算两个日期的天数差

(4)获取两个日期时间的时间差

【范例】获取9月1日12点到9月2日12点的时间差(秒)。

import datetime

begin = datetime.datetime(2017, 9, 1, 12, 0, 0)
end = datetime.datetime(2017, 9, 2, 12, 0, 0)
delta = end - begin
print(delta.total_seconds())  # 86400.0

(5)计算n天后的日期

【范例】输出7天后的日期。

import datetime

t = datetime.datetime.now()
print(t + datetime.timedelta(days=7))  # 2018-06-08 21:46:03.101965


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值