datetime模块
01.datetime模块用于日期,时间和时间戳的处理。
- datetime模块包含datetime类,使用datetime类可以创建各种时间对象。
- datetime的类方法包括:
- today(),返回本地时区当前时间的datetime对象,比如:
result = datetime.datetime.today() print(type(result)) print(result)
- now(tz=None),返回当前时间的datatime对象,时间到微秒,如果tz为None,则等同于today()。
- utcnow(),没有时区的当前时间。
- fromtimestamp(timestamp, tz=None),从一个时间戳返回一个datetime对象,比如:
import pytz import datetime result = datetime.datetime.utcnow() print(result.timestamp()) now = datetime.datetime.fromtimestamp(int(result.timestamp()), tz=pytz.timezone(pytz.country_timezones('cn')[0])) - print(now.today())
- today(),返回本地时区当前时间的datetime对象,比如:
- datetime对象的方法包括:
- timestamp(),返回一个从1970年1月1日0点0分0秒(格林尼治时间)到当前的秒数,比如:
import datetime result = datetime.datetime.utcnow() print(result.timestamp())
- timestamp()会返回一个浮点型的值。
- weekday(),返回星期的天,周一为0,周日为6。
- isoweekday(),返回兴起的天,周一为1,周日为7。
- date(),返回日期date对象。
- time(),返回时间time对象。
- replace(),修改并返回新的时间。
- isocalendar(),返回一个三元组(年,周数,周的天)。
- timestamp(),返回一个从1970年1月1日0点0分0秒(格林尼治时间)到当前的秒数,比如:
- datetime对象可以进行运行,通常用于计算程序执行的耗时,比如:
import datetime
import time
start = datetime.datetime.now()
for i in range(10):
time.sleep(0.2)
end = datetime.datetime.now()
print((end-start).total_seconds())
02.日期格式化:
- 日期格式化指令包括:
- %Y,四位数字的年份。
- %y,两位数字的年份。
- %m,数字格式的月份。
- %b,英文简写格式的月份。
- %d,在一个月中的第几天(日)。
- %w,在一个星期中的第几天(星期几,0-6)。
- %H,二十四小时制的小时(00-23)。
- %I,十二小时制的小时(01-11)。
- %p,AM或PM。
- %M,分钟(00-59)。
- %S,秒(00-59)。
- 格式化日期的类方法:
- strptime(date_string, format),根据给定的日期格式解析时间字符串,并返回一个datetime对象,比如:
import datetime result = datetime.datetime.strptime('2019-08-27 23:18:00', '%Y-%m-%d %H:%M:%S') print(type(result)) print(result.today())
- strptime(date_string, format),根据给定的日期格式解析时间字符串,并返回一个datetime对象,比如:
- 格式化日期的对象方法:
- strftime(format),根据指定日期格式返回字符串,比如:
import datetime result = datetime.datetime.strptime('2019-08-27 23:18:00', '%Y-%m-%d %H:%M:%S') now = result.strftime('%Y/%m/%d %H_%M_%S') print(now)
- strftime(format),根据指定日期格式返回字符串,比如:
03.时间的运算:
- 使用timedelta对象可进行时间对象的运算。
- timedelta的构造方法为:
datetime.timedelta(days=0, seconds=0, microseconds=0,milliseconds=0, minutes=0, hours=0, weeks=0)
- 位置参数表示差异的单位,如days=10,表示差10天;如days=10, weeks=2,表示差24天。
- 构造之后的对象即为差异的日期对象,可以使用加减号进行日期的差异运算。
- timedelta的示例:
import datetime
today = datetime.datetime.today().date()
difference = datetime.timedelta(days=10)
ten_days_ago = today - difference
print(today)
print(difference)
print(ten_days_ago)
文档更新时间: 2021-02-21 21:43 作者:闻骏