Python基础(九): 时间日历
2018-01-14 本文已影响29人
伯wen
Python 程序能用很多方式处理日期和时间, 转换日期格式是一个常见的功能
time模块: 提供了处理时间和表示之间的转换功能
-
获取当前时间戳:
- 从0时区的1970年1月1日0时0分0秒, 到所给定日期时间的秒数
import time result = time.time() print(result) # 打印 1515834955.7807639
-
获取时间元组
-
time.localtime([seconds])
:seconds
为时间戳, 可选参数, 不写默是当前时间戳 - 年, 月, 日, 时, 分, 秒, 本周第几天, 本年第几天, 是否是夏令时
import time result = time.localtime() print(result) # 打印: time.struct_time(tm_year=2018, tm_mon=1, tm_mday=13, tm_hour=17, tm_min=18, tm_sec=43, tm_wday=5, tm_yday=13, tm_isdst=0)
-
-
时间戳和时间元组之间的转换
- 时间戳 -> 时间元组
import time t = time.time() result = time.localtime(t) print(result) # 打印: time.struct_time(tm_year=2018, tm_mon=1, tm_mday=13, tm_hour=18, tm_min=6, tm_sec=45, tm_wday=5, tm_yday=13, tm_isdst=0)
- 时间元组 -> 时间戳
import time time_tuple = time.localtime() result = time.mktime(time_tuple) print(result) # 打印: 1515838278.0
-
获取格式化的时间
- 秒 -> 可读时间:
time.ctime([seconds])
,seconds
同上
import time result = time.ctime() print(result) # 打印: Sat Jan 13 17:24:46 2018
- 时间元组 -> 可读时间:
time.asctime[p_tuple]
:p_tuple
时间元组, 可选项, 默认当前时间
import time time_tuple = time.localtime() result = time.asctime(time_tuple) print(result) # 打印: Sat Jan 13 17:28:10 2018
- 秒 -> 可读时间:
-
格式化日期字符串 <--> 时间元组
- 时间元组 -> 格式化日期:
time.strftime(格式字符串, 时间元组)
import time time_tuple = time.localtime() result = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple) print(result) # 打印: 2018-01-13 18:19:56
- 格式化日期 -> 时间元组:
time.strptime(日期字符串, 格式符字符串)
import time timeString = "2018-01-13 18:22:30" result = time.strptime(timeString, "%Y-%m-%d %H:%M:%S") print(result) # 打印: time.struct_time(tm_year=2018, tm_mon=1, tm_mday=13, tm_hour=18, tm_min=22, tm_sec=30, tm_wday=5, tm_yday=13, tm_isdst=-1)
- 时间元组 -> 格式化日期:
-
常用格式符
%y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身
-
获取当前CPU时间
-
time.clock()
: 返回浮点数, 秒数, 可用来统计一段代码的运行时间
import time start = time.clock() for i in range(10000): print(i) end = time.clock() print(end - start)
-
-
休眠n秒: 推迟线程的执行, 可简单理解为, 让程序暂停
time.sleep(secs)
# 沉睡五秒 import time time.sleep(5)
calendar模块: 提供与日历相关的功能,比如: 为给定的月份或年份打印文本日历的功能
- 获取某月日历
import calendar result = calendar.month(2018, 1) print(result) # 打印: January 2018 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
datetime模块: Python处理日期和时间的标准库
这个模块里面有datetime类,此外常用的还有date类,以及time类, 可以做一些计算之类的操作
- 获取当天日期
import datetime
result = datetime.datetime.now()
print(result) # 打印: 2018-01-14 20:27:34.287719
- 获取当年日期的年月日时分秒
import datetime
t = datetime.datetime.today()
# 年
year = t.year
# 月
month = t.month
# 日
day = t.day
# 时
hour = t.hour
# 分
minute = t.minute
# 秒
second = t.second
- 计算n天之后的日期
import datetime
t = datetime.datetime.today()
result = t + datetime.timedelta(days=7)
print(t) # 打印: 2018-01-14 20:32:22.389295
print(result) # 打印: 2018-01-21 20:32:22.389295
- 获取两个日期的时间差
import datetime
first = datetime.datetime(2018, 1, 1, 0, 0, 0)
second = datetime.datetime(2017, 1, 1, 0, 0, 0)
result = first - second
print(result.total_seconds()) # 打印: 31536000.0