python基础—datetime模块

时间:2022-07-22
本文章向大家介绍python基础—datetime模块,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

datetime模块

  • 对日期、时间、时间戳的处理
  • datetime类
    • 类方法
      • today()返回本地时区当前时间的datetime对象
      • now(tz=None)返回当前时间的datetime对象,时间到微妙,如果tz为None,返回和today()一样
      • utcnow()没有时区的当前时间
      • fromtimestamp(timestamp,tz=None)从一个时间戳返回一个datetime对象
    • datetime对象
      • timestamp()返回一个到微秒的时间戳
      • 时间戳:格林威治时间1970年1月1日0点到现在的秒数
datetime.datetime.today()
datetime.datetime(2018, 8, 24, 18, 15, 17, 355577)

datetime.datetime.now()
datetime.datetime(2018, 8, 24, 18, 15, 27, 207464)


now = datetime.datetime.now()

#可以用int向下取整
datetime.datetime.timestamp(now)
1535105967.344288

datetime.datetime.fromtimestamp(1535105967.344288)
datetime.datetime(2018, 8, 24, 18, 19, 27, 344288)

标准库datetime

  • datetime对象
    • 构造方法  datetime.datetime(2018,8,24,17,43,22,12431)
    • year,month,day,hour,minute,second,microsecond,取datetime对象的年月日时分秒微秒
    • weekday()返回星期的天,周一0,周日6
    • isoweekday()返回星期的天,周一1,周日7
    • date()返回日期date对象
    • time()返回时间time对象
    • replace()修改并返回新的时间
    • isocalendar()返回一个三元组(年、周数、周的天)
date = datetime.datetime(2018,8,24)

#取年月日时分秒
date.day
24

date.year
2018

date.hour
0

date.minute
0

date.weekday()
4

date.isoweekday()
5

date.date()
datetime.date(2018, 8, 24)

date.time()
datetime.time(0, 0)

#replace并不修改之前的时间,只是返回一个新的修改的时间
date.replace(2018,7,24)
datetime.datetime(2018, 7, 24, 0, 0)

date
datetime.datetime(2018, 8, 24, 0, 0)

date.isocalendar()
(2018, 34, 5)
  • 日期格式化
    • 类方法  strptime(date_string,format),返回datetime对象
    • 对象方法  strftime(format),返回字符串
    • 字符串format函数格式化
import datetime

#格式化输出
a
datetime.datetime(2018, 8, 23, 11, 6, 51, 528196)

a.strftime('%Y-%m-%d %H:%M:%S')
'2018-08-23 11:06:51'

'{0:%Y}-{0:%m}-{0:%d} {0:%H}:{0:%M}:{0:%S}'.format(a)
'2018-08-23 11:06:51'

'{}-{}-{}' .format(a.year,a.month,a.day)
'2018-8-23'
  • timedelta对象
    • datetime2 = datetime1 + timedelta
    • datetime2 = datetime1 – timedelta
    • timedelta = datetime1 – datetime2
    •  构造方法 * datetime.timedelta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0,hours=0,weeks=0)
      • year = datetime.timedelta(days=365)
    • total_seconds()返回时间差的总秒数
n = datetime.datetime.now()
h = datetime.timedelta(hours = 24)

n - h
datetime.datetime(2018, 8, 22, 11, 27, 36, 718876)

c = datetime.datetime.now()

(c - n)
datetime.timedelta(0, 46, 98856)

(c - n).total_seconds()
46.098856
  • time
    • time.sleep(seconds)将调用线程挂起指定的秒数