%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 当前时区的名称
%% %号本身
导入库
函数 | 作用 |
---|---|
datetime.date(year, mouth,day) | 获取某天日期,返回日期格式 |
datetime.date.fromtimestamp(timestamp) | 从时间戳获取日期 |
datetime.date.today() | 获取当前日期 |
获取某天日期,返回日期格式
a = datetime.date(2020,2,23)
print(a)
print(type(a))
使用 | 作用 |
---|---|
a.year | 提取年,输出2024,类型为 int |
a.month | 提取月,输出1,类型为int |
a.day | 提取日,输出17,类型为int |
a.isoformat() | 提取该日期的字符串,输出2024-01-17 |
a.replace(a.year,7,a.day) | 替换日期,把月替换为7月 |
a.isoweekday() | 返回 iso 星期几。monday=1 |
a.weekday() | 返回非iso的星期几,monday=0 |
a.strftime(‘%Y/%m/%d’) | 返回该日期的字符串。输出2024-01-17,类型为str。假如不需要日,把/%d去掉即可。中间分隔支持任意英文字符,如 / ,但不支持中文。 |
a.timetuple() | 结构化日期,返回日期时间元组。包括 年月日时分秒 非iso星期 年日数 夏令时。 |
a.toordinal() | 返回公历序数。即从公历开始算,是第几日。 |
a.ctime() | 返回英文的时间格式标准 |
datetime.date格式都可以使用这个表中的函数去获取属性
a = datetime.date(2020,2,23)
print(a.year)
print(a.month)
print(a.day)
print(a.isoformat())
print(a.replace(a.year,7,a.day))
print(a.isoweekday())
print(a.weekday())
print(a.strftime('%Y/%m/%d'))
print(a.timetuple())
print(a.toordinal())
print(a.ctime())
从时间戳获取日期
a = datetime.date.fromtimestamp(1681925739)
print(type(a))
print(a)
获取当前日期
a = datetime.date.today()
print(type(a))
print(a)
函数 | 作用 |
---|---|
datetime.time(hour, minute,second,millisecond) | 获取时间,返回时间格式 |
获取时间,返回时间格式
a = datetime.time(20,20,20,10000)
print(type(a))
print(a)
属性 | 作用 |
---|---|
a.hour | 提取时 |
a.minute | 提取分 |
a.second | 提取秒 |
a.microsecond | 提取毫秒 |
a.isoformat | 返回该时间的字符串。输出 12:03:56:888888 |
a.replace(second=44) | 把秒替换成44,返回的格式为 datetime.time |
a.strftime(‘%H:%M:%S’) | 格式化时间,输出指定格式的字符串 |
a.tzname() | 返回时区名称 |
a.utcoffset() | 返回时区的时间偏移量 |
datetime.time格式都可以使用这些函数去提取属性
a = datetime.time(20,20,20,10000)
print(a.hour)
print(a.minute)
print(a.second)
print(a.microsecond)
print(a.isoformat(),type(a.isoformat()))
print(a.replace(second=44,minute=44),type(a.replace(second=44,minute=44)))
print(a.strftime('%H-%M-%S'))
函数 | 作用 |
---|---|
datetime.datetime(year, month,day,hour,minute,second,microsecond) | 获取某天日期时间,至少传入 year,mouth,day 三个参数 |
datetime.datetime.now() | 获取当前的日期时间 |
datetime.datetime.today() | 获取当前的日期时间 |
datetime.datetime.fromtimestamp(timestamp) | 从时间戳获取日期时间 |
datetime.datetime.utcnow() | 获取现在的格林尼治时间 |
datetime.datetime.utcfromtimestamp(timestamp) | 从时间戳获取林尼治时间 |
datetime.datetime.combine(date,time) | 通过连接日期和时间生成日期时间 |
datetime.datetime.timestamp(dt) | 获取时间戳 |
datetime.datetime.strptime(string,format) | 把字符串类型转化为日期时间 |
datetime.timedalta(weeks,days,hours,minutes,seconds,milliseconds,microseconds) | 时间增量,可作时间的加减 |
获取某天日期时间,至少传入 year,mouth,day 三个参数
a = datetime.datetime(2024,1,1,1,1,1,1000)
print(a)
print(type(a))
属性 | 作用 |
---|---|
a.date() | 提取日期,返回的类型为 datetime.date |
a.time() | 提取时间,返回的类型为 datetime.time |
a.year | 提取年 |
a.mouth | 提取月 |
a.day | 提取日 |
a.hour | 提取时 |
a.minute | 提取分 |
a.second | 提取秒 |
a.microsecond | 提取毫秒 |
a.timestamp() | 提取时间戳 |
a.timetuple() | 返回日期时间元组 |
a.isoweekday() | 返回iso星期几,Monday=1 |
a.weekday() | 返回非iso星期几,Monday=0 |
a.replace(mouth=2) | 把月替换成2,类型还时 datetime.datetime |
a.strftime(‘%Y/%m/%d %H:%M:%S:%f’) | 格式化日期时间。输出指定格式字符串。中间分隔支持任意英文字符,如 / : ,但不支持中文。 |
a.toordinal() | 返回公历序数。即从公历开始算,是第几日。 |
a = datetime.datetime(2024,1,1,1,1,1,1000)
print(a.date(),type(a.date()))
print(a.time(),type(a.time()))
print(a.year)
print(a.month)
print(a.day)
print(a.hour)
print(a.minute)
print(a.second)
print(a.microsecond)
print(a.timestamp())
print(a.timetuple())
print(a.isoweekday())
print(a.weekday())
print(a.replace(month=2))
print(a.strftime('%Y/%m/%d %H:%M:%S:%f'))
print(a.toordinal())
获取当前的日期时间
a = datetime.datetime.now()
print(a)
获取当前的日期时间
a = datetime.datetime.today(1681969157)
print(a)
从时间戳获取日期时间
a = datetime.datetime.fromtimestamp(1681969157)
print(a)
获取现在的格林尼治时间
a = datetime.datetime.utcnow()
print(a)
从时间戳获取林尼治时间
a = datetime.datetime.utcfromtimestamp(1681969157)
print(a)
通过连接日期和时间生成日期时间
a = datetime.date(2020,12,31)
b = datetime.time(12,21,21)
c = datetime.datetime.combine(a,b)
print(c)
获取时间戳,和 dt.timestamp()一样。
a = datetime.datetime.timestamp(datetime.datetime.now())
print(a)
把字符串类型转化为日期时间
# 使用 strptime 解析字符串
date_string = "2023-07-18"
date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d")
print(type(date_object))
print(date_object) # 输出:2023-07-18 00:00:00
时间增量,可作时间的加减
a = datetime.datetime(2023,4,18,15,16,20)
print(a)
delta = datetime.timedelta(days=5,minutes=23,seconds=37)
b = a + delta
print(b)
可以直接对两个时间进行减法,从而产生时间增量 timedelta。时间增量可以为负,也可以为正。如算我国时间与格林尼治的时间差:
a = datetime.datetime.now()
b = datetime.datetime.utcnow()
print(a - b)
print(b - a)
print(type(a - b))