python time 与datetime之间的区别与联系

本文介绍Python中使用time模块和datetime模块处理时间的方法,包括时间戳、struct_time数组、datetime对象之间的转换,以及如何计算指定时间间隔。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.time模块

time模块提供各种操作时间的函数

  一般有两种表示时间的方式:

  第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的

#当前时间的时间戳  

1
2
In [9]: time.time()  
Out[9]: 1376102328.536908


第二种以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同

1
2
In [2]: time.localtime()  
Out[2]: time.struct_time(tm_year=2013, tm_mon=8, tm_mday=10, tm_hour=10, tm_min=30, tm_sec=47, tm_wday=5, tm_yday=222, tm_isdst=0)


 gmtime()与mktime()可以将两种时间表示方法自由转换

1
2
In [22]: time.gmtime(time.time())  
Out[22]: time.struct_time(tm_year=2013, tm_mon=8, tm_mday=10, tm_hour=2, tm_min=46, tm_sec=54, tm_wday=5, tm_yday=222, tm_isdst=0)

  

1
2
In [23]: time.mktime(time.localtime())  
Out[23]: 1376102845.0

 

strftime()可以将struct_time类型自由转换成字符型

1
2
In [24]: time.strftime("%Y%m%d", time.localtime())  
Out[24]: '20130810'


strptime(string, format) 将时间字符串根据指定的格式化符转换成数组形式的时间

1
2
In [26]: time.strptime('20130810'"%Y%m%d")  
Out[26]: time.struct_time(tm_year=2013, tm_mon=8, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=222, tm_isdst=-1)

注意,不能直接将时间戳转换为字符串,时间串也不能直接转换为时间戳,只能通过localtime,利用mktime方法来转


二.datetime模块

1
2
In [27]: datetime.datetime.now()  
Out[27]: datetime.datetime(2013810105610611490)


strftime方法,可以将一个datetime型日期转换成字符串

1
2
In [28]: datetime.datetime.now().strftime("%Y%m%d")  
Out[28]: '20130810'

datetime.strptime(date_string, format):将格式字符串转换为datetime对象

1
2
In [30]: datetime.datetime.strptime("20130810""%Y%m%d")  
Out[30]: datetime.datetime(201381000)


三.计算当前时间的前1天

1
one_day_before = datetime.datetime.today() - datetime.timedelta(days=1)

天:days

小时:hours

分钟:minutes


四.time与datetime之间的互相转换

time 转为datetime

1
2
= time.time()
datetime.datetime.fromtimestamp(a)

datetime 转为time

1
2
= datetime.datetime.now()
time.mktime(b.timetuple())



参考:http://iam42.iteye.com/blog/1922875

   http://blog.youkuaiyun.com/hong201/article/details/3193121




      本文转自布拉君君 51CTO博客,原文链接:http://blog.51cto.com/5148737/1760596,如需转载请自行联系原作者





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值