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())
  • 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(),返回一个三元组(年,周数,周的天)。
  • 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())
  • 格式化日期的对象方法:
    • 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)


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   作者:闻骏