前言
Python3的日期和时间学习笔记
time
引入模块
获取当前时间的时间戳
将当前时间转换为UTC时间的时间元祖
将指定时间戳转换为UTC时间的时间元祖
<timestamp>
:时间戳毫秒值
1
| time.gmtime(<timestamp>)
|
获取当前时间转换为本地时间的时间元祖
将指定时间戳转换为本地时间的时间元祖
1
| t = time.localtime(time.time())
|
从时间元祖中获取元素
年
月
月中日
年中日
时
分
秒
周
是否时夏令时
取值
-1
:缺省值,未知
1
:是夏令时
0
:不是夏令时
格式化时间
将时间格式转换成字符串
内置
自定义
1
| time.strftime("%Y-%m-%d %H:%M:%S", t)
|
将字符串转换成时间格式
内置
<str>
:字符串
1
| t = time.mktime(time.strptime(<str>,"%a %b %d %H:%M:%S %Y"))
|
自定义
<str>
:字符串
1
| t = time.mktime(time.strptime(<str>,"%Y-%m-%d %H:%M:%S"))
|
datetime
引入依赖
参数取值范围
取值范围
year:[MINYEAR,MAXYEAR]
month:[1,12]
day:[1,当前月的天数最大值]
hour:[0,23]
minute:[0,59]
second:[0,59]
microsecond:[0,1000000]
获取当前时间的datetime对象
1
| dt = datetime.datetime.today()
|
1
| dt = datetime.datetime.now()
|
获取时间戳
1
| ts = datetime.datetime.now().timestamp()
|
指定时区
<timezone>
:时区
1
| dt = datetime.datetime.now([<timezone>])
|
UTC
1
| dt = datetime.datetime.utcnow()
|
获取指定时间的datetime对象
2006
:指定年
1
:指定月
2
:指定日
15
:指定时
4
:指定分
5
:指定秒
1
| dt = datetime.datetime(2006, 1, 2)
|
1
| dt = datetime.datetime(2006, 1, 2, 15)
|
1
| dt = datetime.datetime(2006, 1, 2, 15, 4)
|
1
| dt = datetime.datetime(2006, 1, 2, 15, 4, 5)
|
1
| dt = datetime.datetime(2006, 1, 2, 15, 4, 5, 700)
|
时间戳转换为datetime对象
<timestamp>
:时间戳
1
| dt = datetime.datetime.fromtimestamp(<timestamp>)
|
指定时区
<timezone>
:时区
1
| dt = datetime.datetime.fromtimestamp(<timestamp>, <timezone>)
|
UTC
1
| dt = datetime.datetime.utcfromtimestamp(<timestamp>)
|
date对象和time对象转化为datetime对象
<date>
:日期对象
<time>
:时间对象
1
| dt = datetime.datetime.combine(<date>, <time>)
|
将时间格式的字符串转化为datetime对象
<date_str>
:日期格式的字符串
<format>
:格式化的格式
1
| dt = datetime.datetime.strptime(<date_str>, <format>)
|
对象的属性和方法
属性
返回对象的年
返回对象的月
返回对象的日
返回对象的时
返回对象的分
返回对象的秒
返回对象的微秒
返回对象的时区
方法
获取date对象
获取time对象(时区为空)
获取time对象(时区不为空)
以元祖的方式获取对象(不含时区)
以元祖的方式获取对象(不含时区,UTC时区)
获取天数
获取星期数
以元祖的方式获取格林威治时间
返回表示日期和时间的字符串
获取24字符长度的时间字符串
获取指定格式的时间字符串
1
| dt.strftime("%Y-%m-%d %H:%M:%S")
|
格式化控制符
格式化控制符 |
备注 |
%y |
年(00~99) |
%Y |
年(0000~9999) |
%m |
月(01~12) |
%d |
天(0~1) |
%H |
时(0~23) |
%M |
分(00~59) |
%S |
秒(00~59) |
%a |
本地的简化星期名 |
%A |
本地的完整星期名 |
%b |
本地的简化月份名 |
%B |
本地的完整月份名 |
%p |
本地的A.M. 、P.M. 等价符 |
datetime对象计算
增加指定时间量
增加1天
1
| dt + datetime.timedelta(days=1)
|
增加1小时
1
| dt + datetime.timedelta(hours=1)
|
增加1分钟
1
| dt + datetime.timedelta(minutes=1)
|
增加1秒
1
| dt + datetime.timedelta(seconds=1)
|
增加1毫秒
1
| dt + datetime.timedelta(milliseconds=1)
|
增加1微秒
1
| dt + datetime.timedelta(microseconds=1)
|
减少指定时间量
减少1天
1
| dt - datetime.timedelta(days=1)
|
减少1小时
1
| dt - datetime.timedelta(hours=1)
|
减少1分钟
1
| dt - datetime.timedelta(minutes=1)
|
减少1秒
1
| dt - datetime.timedelta(seconds=1)
|
减少1毫秒
1
| dt - datetime.timedelta(milliseconds=1)
|
减少1微秒
1
| dt - datetime.timedelta(microseconds=1)
|
calendar
引入模块
1 2
| import time import calendar
|
获取当前时间的时间戳
1 2
| t = time.gmtime() ts = calendar.timegm(t)
|
完成
参考文献
菜鸟笔记
CSDN——洛城-sola
CSDN——Asher117
PHP中文网——藏色散人