Python模塊--time&datetime

1、Python中時間的表示方式函數

一、時間戳  如 1552623413.043036spa

二、格式化的時間字符串  如 2015-12-02線程

三、struct_time  是一個元組 共有九個元素code

2、關於時間的幾個定義orm

一、UTC(Coordinated Universal Time,世界協調時)亦即格林威治天文時間,世界標準時間。在中國爲UTC+8。blog

二、DST(Daylight Saving Time)即夏令時索引

三、時間戳(timestamp):一般來講,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。time.time(),返回當前時間的時間戳,是一個float類型。字符串

四、元組(struct_time):返回struct_time的函數主要有gmtime(),localtime(),strptime()。struct_time元組9個元素:string

索引(Index)    屬性(Attribute)              值(Values)
0                 tm_year(年)                 好比2011 
1                 tm_mon(月)                   1 - 12
2                 tm_mday(日)                 1 - 31
3                 tm_hour(時)                 0 - 23
4                 tm_min(分)                  0 - 59
5                 tm_sec(秒)                  0 - 61
6                 tm_wday(weekday)            0 - 6(0表示週日)
7                 tm_yday(一年中的第幾天)       1 - 366
8                 tm_isdst(是不是夏令時)        默認爲-1

例:form

import time

print(time.localtime())
print(time.localtime().tm_yday)  # 查看今天是一年中的第幾天 或 time.localtime()[7]

# 結果:
  time.struct_time(tm_year=2019, tm_mon=3, tm_mday=15, tm_hour=22, tm_min=24, tm_sec=58, tm_wday=4, tm_yday=74, tm_isdst=0)
  74

3、time模塊

import time

一、time.localtime([secs]):將一個時間戳轉換爲當前時區的struct_time。secs參數未提供,則以當前時間爲準。

import time

print(time.localtime(345678234))
# time.struct_time(tm_year=1980, tm_mon=12, tm_mday=15, tm_hour=5, tm_min=43, tm_sec=54, tm_wday=0, tm_yday=350, tm_isdst=0)
print(time.localtime())
# time.struct_time(tm_year=2019, tm_mon=3, tm_mday=15, tm_hour=22, tm_min=31, tm_sec=50, tm_wday=4, tm_yday=74, tm_isdst=0)

二、time.gmtime([secs]):和localtime()方法相似,gmtime()方法是將一個時間戳轉換爲UTC時區(0時區)的struct_time。

import time

print(time.gmtime(345678234))
# time.struct_time(tm_year=1980, tm_mon=12, tm_mday=14, tm_hour=21, tm_min=43, tm_sec=54, tm_wday=6, tm_yday=349, tm_isdst=0)
print(time.gmtime())
# time.struct_time(tm_year=2019, tm_mon=3, tm_mday=15, tm_hour=14, tm_min=34, tm_sec=55, tm_wday=4, tm_yday=74, tm_isdst=0)

三、time.time():返回當前時間的時間戳。

四、time.mktime(t):將一個struct_time轉化爲時間戳。

import time

print(time.mktime(time.localtime()))  # 1552660909.0

五、time.sleep(secs):線程推遲指定的時間運行。單位爲秒。

六、time.asctime([t]):把一個表示時間的元組或者struct_time表示爲這種形式:'Sun Oct 1 12:04:38 2017'。若是沒有參數,將會將time.localtime()做爲參數傳入。

import time

print(time.asctime())  # Fri Mar 15 22:45:22 2019

七、time.ctime([secs]):把一個時間戳轉化爲'Sun Oct 1 12:04:38 2017'的形式。若是參數未給或者爲None的時候,將會默認time.time()爲參數。它的做用至關於time.asctime(time.localtime(secs))。

import time

print(time.ctime(3738383884))  # Fri Jun 18 15:58:04 2088
print(time.ctime())  # 沒有參數的話就默認將time.time()當作參數傳入  Fri Mar 15 22:48:09 2019

八、time.strftime(format[, t]):把一個表明時間的元組或者struct_time( 如time.localtime()和time.gmtime() )轉化爲格式化的時間字符串。若是t未指定,將傳入time.localtime()。

import time

print(time.strftime("%Y-%m-%d %X", time.localtime()))  # 2019-03-15 22:52:11

九、time.strptime(string[, format]):把一個格式化時間字符串轉化爲struct_time,與strftime()是逆操做。

import time

print(time.strptime("2017-01-01", "%Y-%m-%d"))  
# time.struct_time(tm_year=2017, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=1, tm_isdst=-1)

十、字符串格式對應表

%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模塊

一、datetime.date:表示日期的類。經常使用的屬性有year, month, day;

import datetime

print(datetime.date(2012, 3, 4).year)  # 2012
print(datetime.date(2012, 3, 4).month)  # 3
print(datetime.date(2012, 3, 4).day)  # 4

二、datetime.time:表示時間的類。經常使用的屬性有hour, minute, second, microsecond;

import datetime

print(datetime.time(22, 34, 56).hour)  # 22時
print(datetime.time(22, 34, 56).minute)  # 34分
print(datetime.time(22, 34, 56).second)  # 56秒
print(datetime.time(22, 34, 56, 23).microsecond)  # 23微秒

三、datetime.datetime:表示日期時間。

import datetime

print(datetime.datetime(2018, 2, 23, 22, 34, 56).year)  # 2018年
print(datetime.datetime(2018, 2, 23, 22, 34, 56).month)  # 2月
print(datetime.datetime(2018, 2, 23, 22, 34, 56).day)  # 23日
print(datetime.datetime(2018, 2, 23, 22, 34, 56).hour)  # 22時
print(datetime.datetime(2018, 2, 23, 22, 34, 56).minute)  # 34分
print(datetime.datetime(2018, 2, 23, 22, 34, 56).second)  # 56秒
print(datetime.datetime(2018, 2, 23, 22, 34, 56, 23).microsecond)  # 23微秒

四、datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。

import datetime

print(datetime.datetime(2017, 10, 1, 12, 53, 11, 821218))  # 2017-10-01 12:53:11.821218

print(datetime.datetime.now() + datetime.timedelta(4))  # 當前時間+4天  2019-03-19 23:58:23.998880

print(datetime.datetime.now() + datetime.timedelta(hours=4))  # 當前時間+4小時

五、datetime.tzinfo:與時區有關的相關信息。

六、相關示例

import datetime

d = datetime.datetime.now()  # 返回當前的datetime日期類型
print(d)  # 2019-03-15 23:52:06.701376
print(d.timestamp())  # 1552665126.701376
print(d.today())  # 2019-03-15 23:52:06.701459
print(d.year)  # 2019
print(d.timetuple())  # time.struct_time(tm_year=2019, tm_mon=3, tm_mday=15, tm_hour=23, tm_min=52, tm_sec=6, tm_wday=4, tm_yday=74, tm_isdst=-1)

time1 = datetime.datetime(2016, 12, 20)
time2 = datetime.datetime(2016, 11, 2)
print((time1-time2).days)  # 計算天數差值
import datetime

d = datetime.date.fromtimestamp(544788566)  # 把一個時間戳轉爲datetime日期類型
print(d)

print(datetime.date.today().replace(year=2018, month=4, day=1))  # 替換日期  2018-04-01
相關文章
相關標籤/搜索