点击“蓝字”关注,一起进阶共同成长
datetime用做日期和时间的管理和转换。
获取当前时间
import time
from datetime import datetime, timedelta
# 返回datetime.datetime类型
case1 = datetime.now()
print(f'case1: {case1}')
print(f'case1-1: {case1.year, case1.month, case1.day}')
# 格式化日期,返回str类型
case2 = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print(f'case2: {case2}')
case1: datetime.datetime(2020, 12, 13, 16, 5, 57, 448449)
case1-1: (2020, 12, 13)
case2: ('2020-12-13 16:05:57.448602')
格式化datetime.datetime类型的对象
# 返回str
case3 = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')
print(f'case3: {case3}')
case3: '2020-12-13 16:05:57'
strftime的格式符参考以下表格
格式符 | 说明 |
---|---|
%a | 星期的英文单词的缩写:如星期一, 则返回 Mon |
%A | 星期的英文单词的全拼:如星期一,返回 Monday |
%b | 月份的英文单词的缩写:如一月, 则返回 Jan |
%B | 月份的引文单词的缩写:如一月, 则返回 January |
%c | 返回datetime 的字符串表示,如03/08/15 23:01:26 |
%d | 返回的是当前时间是当前月的第几天 |
%f | 微秒的表示:范围: [0,999999] |
%H | 以24小时制表示当前小时 |
%I | 以12小时制表示当前小时 |
%j | 返回 当天是当年的第几天 范围[001,366] |
%m | 返回月份 范围[0,12] |
%M | 返回分钟数 范围 [0,59] |
%P | 返回是上午还是下午–AM or PM |
%S | 返回秒数 范围 [0,61]。。。手册说明的 |
%U | 返回当周是当年的第几周 以周日为第一天 |
%W | 返回当周是当年的第几周 以周一为第一天 |
%w | 当天在当周的天数,范围为[0, 6],6表示星期天 |
%x | 日期的字符串表示 :03/08/15 |
%X | 时间的字符串表示 :23:22:08 |
%y | 两个数字表示的年份 15 |
%Y | 四个数字表示的年份 2015 |
%z | 与utc时间的间隔 (如果是本地时间,返回空字符串) |
%Z | 时区名称(如果是本地时间,返回空字符串) |
获取当前的UTC时间
case4 = datetime.utcnow()print(f'case4: {case4}')case4: 2020-12-13 08:05:57.448735
获取一个时间之前或者之后一段时间后的时间,使用timedelta可以很方便的实现。
case6 = case1 + timedelta(days=1)# case1需为datetime类型print(f'type(timedelta(days=1))-> {type(timedelta(days=1))}')print(f'case6: {case6}')type(timedelta(days=1))-> 'datetime.timedelta'>case6: 2020-12-14 16:05:57.448449
下面为字符串时间和时间戳的互相转换
# 字符串时间转时间戳def time2stamp(t): time_array = time.strptime(t, '%Y-%m-%d %H:%M:%S') print(type(time_array), '->', time_array) timestamp = time.mktime(time_array) return timestamp# 当前时间转时间戳def get_now_stamp(): now_time = datetime.now() return time.mktime(now_time.timetuple())# 时间戳转时间def stamp2time(timestamp): return datetime.fromtimestamp(timestamp)if __name__ == '__main__': print('->', time2stamp('2020-12-10 23:34:30')) print('->', get_now_stamp()) print('->', stamp2time(1607614470))<class 'time.struct_time'> -> time.struct_time(tm_year=2020, tm_mon=12, tm_mday=10, tm_hour=23, tm_min=34, tm_sec=30, tm_wday=3, tm_yday=345, tm_isdst=-1)-> 1607614470.0-> 1607848078.0-> 2020-12-10 23:34:30
欢迎留言和我分享,我会第一时间给你反馈
长按关注
一起进阶
Do Hard