python程序能够用很多方式处理日期和时间,转换日期格式是常见的功能。
常用操作
1.time模块
提供了处理时间和表示之间转换的功能
获取当前时间戳
概念:从0时区的1970年1月1日0时0分0秒,到所给定日期时间的秒数。
浮点数
获取方式:import time
time.time()
import time result = time.time() years = result / (24 * 60 * 60 * 365) + 1970 print(result, years)
获取时间元组
很多python时间函数将时间处理为9个数组的元组
图解:
获取方式:
import time
time.localtime([seconds])->seconds可选的时间戳,如果不填写,默认当前时间戳。
print(time.localtime()) print(time.localtime(1526918254.346959))
获取格式化的时间
秒 ->可读时间
import time
time.ctime([seconds]) -> seconds可选的时间戳,默认当前时间戳。
print(time.ctime())
时间元组 -> 可读时间
import time
time.asctime([p_tuple]) -> p_tuple可选的时间元组,默认当前时间元组。
time_tuple = time.localtime()
print(time.asctime(time_tuple))
格式化日期字符<-->时间戳
时间远足 ->格式化日期
time.strftime(格式字符串,时间元组)
例如:time.strtime("%Y-%m-%d %H:%M:%S", timelocaltime())
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) print(time.strftime("%y-%m-%d %H:%M:%S", time.localtime())) print(time.strftime("%Y---%m---%d %H:%M:%S", time.localtime()))
格式化日期 -> 时间元组
time.strptime(日期字符串,格式符字符串)
例如:
print(time.strptime("2018-05-22 00:14:04", "%Y-%m-%d %H:%M:%S"))
time.mktime(时间元组) 将时间元组转换为时间戳
print(time.time()) print(time.mktime(time.localtime()))
常用格式符
%y -> 两位数的年份表示(0-99)
%Y -> 四位数的年份表示(000-9999)
%m -> 月份(01-12)
%d -> 月内中的一天(0-31)
%H -> 24小时制小时数(0-23)
%I -> 12小时制小时数(01-12)
%M -> 分钟数(00-59)
%S -> 秒(0-59)
%a -> 本地简化星期名称
%A -> 本地完整星期名称
%b -> 本地简化的月份名称
%B -> 本地完整的月份名称
%c -> 本地相应的日期表示和时间表示
获取当前cpu时间
time.clock() -> 浮点数的秒数
可用来统计一段程序代码的执行耗时
start = time.clock() for i in range(0,10000): print(i) end = time.clock() print(end - start)
休眠n秒
推迟线程的执行,可以简单的理解为,让程序暂停。
time.sleep(secs)
start = time.clock() for i in range(0, 10000): if i == 10: time.sleep(10) print(i) end = time.clock() print(end - start)
2.calendar模块
提供与日历相关的功能,比如:为给定的月份或年份打印文本日历的功能。
获取某月日历:import calendar
calendar.month(2018,5)
import calendar print(calendar.month(2018, 9))
![](https://i-blog.csdnimg.cn/blog_migrate/369ce6d96d19bef7d7d446edd14a1572.jpeg)
3.datetime模块
python处理时间和日历的标准库。这个模块里有datetime类,此外常用的还有date类,以及time类。可以做一些计算之类的操作。
获取当天日期
import datetime
print(datetime.datetime.now)
print(datetime.datetime.today)
单独获取当前的年月日时分秒
print(datetime.datetime.now().year) print(datetime.datetime.now().month) print(datetime.datetime.now().day) print(datetime.datetime.now().hour) print(datetime.datetime.now().minute) print(datetime.datetime.now().second)
获取两个日期时间差
import datetime
first = datetime.datetime(2018, 5, 22, 10, 0, 0)
second = datetime.datetime(2018, 5, 10, 9, 0, 0)
result = first - second
print(result)
import datetime first = datetime.datetime(2018, 5, 22, 10, 0, 0) second = datetime.datetime(2018, 5, 10, 9, 0, 0) result = first - second print(result)
print(result.total_seconds()) # 获取相差多少秒。
计算n天之后的日期
import datetime t = datetime.datetime.today() result = t + datetime.timedelta(days=7) print(t, result)