Python 日期格式总结

本文详细介绍了Python中'datetime'模块的使用方法,包括获取当前时间、日期与时间的提取、格式化、时间差计算及时间戳转换。通过实例演示了如何应用strftime()和strptime()函数处理日期数据,以及如何利用timedelta对象进行时间加减运算。

近期本人在许多函数操作中经常用到时间或日期类数据 ,对此进行一个模块总结:

当对日期类数据进行操作时必然要用到'datetime'模块:import datetime

1、本地当前时间(带时区)

t1 = datetime.datetime.now()
>>2018-12-31 19:35:44.178960   数据类型为 <class 'datetime.datetime'>

(不带时区)

datetime.datetime.utcnow()
2018-12-31 11:35:44.178960

2、从日期时间对象中提取日期或时间

t1.date()
t1.time()

3、格式化:
strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。常用与转换日期数据格式及写入文件操作。

t2 = t1.strftime("%Y/%m/%d %H:%M:%S")
>>2018/12/31 19:35:44  数据类型为 <class 'str'>

strptime()函数常用于将字符串类型日期数据转换为日期类型数据,与strftime()作用相对;常用作日期数据排序时比较数据。

t3 = datetime.datetime.strptime(t2,"%Y-%m-%d %H:%M:%S")
>>2018-12-31 19:35:44  数据类型为 <class 'datetime.datetime'>

python中时间日期格式化符号:

%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 当前时区的名称
%% %号本身

4、时间差
datetime.timedelta对象代表两个时间之间的时间差,两个date或datetime对象相减就可以返回一个timedelta对象。

针对时间存储,timedelta内部只能存储days,seconds,microseconds,其他参数的值会自动按如下规则进行转换: 
1 millisecond(毫秒)转换成 1000 microseconds(微秒) 
1 minute 转换成 60 seconds 
1 hour 转换成 3600 seconds 
1 week转换成 7 days
t3 = datetime.timedelta(minutes=60)
>>1:00:00
t1 + t3
2018-12-31 20:35:44.178960   数据类型为 <class 'datetime.datetime'>

通过random+timedelta 随机生成时间差函数可用于批量获取日期数据:
例代码

now = datetime.datetime.now()
        for i in range(n):
            d = datetime.timedelta(seconds=random.randint(start, end))
            nd = now + d

时间戳转换:

dt = datetime.datetime.fromtimestamp(time.time())

自己生成日期数据:

dt = datetime(2018, 7, 31, 14, 21, 22)

git源码地址:https://github.com/wswpython/Test_datetime.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值