python中datetime的常用功能


datetime在python中比較常用,主要用來處理時間日期,使用前先倒入datetime模塊,下面總結一下本人用到的常用功能。

1.當前時間

In [30]: datetime.datetime.now()
Out[30]: datetime.datetime(2018, 9, 11, 10, 40, 30, 190295)

 2.當前日期

In [32]: datetime.datetime.now().date()
Out[32]: datetime.date(2018, 9, 11)

3.當前時間tuple

In [35]: datetime.datetime.now().timetuple()
Out[35]: time.struct_time(tm_year=2018, tm_mon=9, tm_mday=11, tm_hour=10, tm_min=44, tm_sec=35, tm_wday=1, tm_yday=254, tm_isdst=-1)

4.時間移動(幾天、幾小時前后...)

使用datetime.timedelta這個方法來前后移動時間,可以用的參數有weeks,days,hours,minutes,seconds,microseconds。

>>> print datetime.datetime.now() + datetime.timedelta(days=1)
2015-07-18 16:49:48.574000
>>> print datetime.datetime.now() + datetime.timedelta(hours=1)
2015-07-17 17:49:57.122000
>>> print datetime.datetime.now() + datetime.timedelta(minutes=-30)
2015-07-17 16:20:08.619000

上個月最后一天

>>> print datetime.date(day=1,month=datetime.date.today().month,year=datetime.date.today().year) - datetime.timedelta(days=1)

2015-06-30

自然月的時間移動

https://dateutil.readthedocs.io/en/stable/relativedelta.html

In [13]: import datetime

In [14]: from dateutil.relativedelta import relativedelta

In [15]: a = datetime.datetime(2018,8,31)

In [16]: b = a - relativedelta(months=+6)

In [17]: a
Out[17]: datetime.datetime(2018, 8, 31, 0, 0)

In [18]: b
Out[18]: datetime.datetime(2018, 2, 28, 0, 0)

5.獲取兩個時間的時間差

>>> (datetime.datetime.now() - datetime.datetime.utcnow()).total_seconds()
28800.0

6.時間轉化

datetime轉str格式:

>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2015-07-17 16:58:46'

str格式轉datetime格式:

>>> datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")
datetime.datetime(2015, 7, 17, 16, 58, 46)
>>> print datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")
2015-07-17 16:58:46
>>> print type(datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S"))
<type 'datetime.datetime'>

datetime轉timestamp:

>>> import time >>> now=datetime.datetime.now() >>> time.mktime(now.timetuple()) 1437123812.0

timestamp轉datetime:

>>> datetime.datetime.fromtimestamp(1437123812.0)
datetime.datetime(2015, 7, 17, 17, 3, 32)
>>> print datetime.datetime.fromtimestamp(1437123812.0)
2015-07-17 17:03:32


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM