国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

time和datetime模塊

2019-11-08 19:56:27
字體:
來源:轉載
供稿:網友
time模塊

1)time模塊中時間表現的格式主要有三種:

  a、timestamp時間戳,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量

  b、struct_time時間元組,共有九個元素組。

  c、formattime 格式化時間,已格式化的結構使時間更具可讀性。包括自定義格式和固定格式。

 

datatime模塊重新封裝了time模塊,提供更多接口,提供的類有:date,time,datetime,timedelta,tzinfo;

 

2)struct_time元組元素結構

屬性                            值

tm_year(年)                  比如2011

tm_mon(月)                   1 - 12

tm_mday(日)                  1 - 31

tm_hour(時)                  0 - 23

tm_min(分)                   0 - 59

tm_sec(秒)                   0 - 61

tm_wday(weekday)             0 - 6(0表示周日)

tm_yday(一年中的第幾天)        1 - 366

tm_isdst(是否是夏令時)        默認為-1

 

3)format time結構化表示

格式        含義

%a        本地(locale)簡化星期名稱

%A        本地完整星期名稱

%b        本地簡化月份名稱

%B        本地完整月份名稱

%c        本地相應的日期和時間表示

%d        一個月中的第幾天(01 - 31)

%H        一天中的第幾個小時(24小時制,00 - 23)

%I        第幾個小時(12小時制,01 - 12)

%j        一年中的第幾天(001 - 366)

%m        月份(01 - 12)

%M        分鐘數(00 - 59)

%p        本地am或者pm的相應符

%S        秒(01 - 61)

%U        一年中的星期數。(00 - 53星期天是一個星期的開始。)第一個星期天之前的所有天數都放在第0周。

%w        一個星期中的第幾天(0 - 6,0是星期天)

%W        和%U基本相同,不同的是%W以星期一為一個星期的開始。

%x        本地相應日期

%X        本地相應時間

%y        去掉世紀的年份(00 - 99)

%Y        完整的年份

%Z        時區的名字(如果不存在為空字符)

%%        ‘%’字符

 

4)主要time生成方法和time格式轉換方法

獲取當前時間timestamp

>>>import time>>>time.time1487140522.975

生成struct_time

>>>time.localtime()time.struct_time(tm_year=2017,tm_mon=2, tm_mday=15, tm_hour=14, tm_min=52, tm_sec=34, tm_wday=2, tm_yday=46,tm_isdst=0)

timestamp轉換成struct_time本地時間

>>>time.localtime(time.time())time.struct_time(tm_year=2017,tm_mon=2, tm_mday=15, tm_hour=14, tm_min=36, tm_sec=29, tm_wday=2, tm_yday=46,tm_isdst=0)

timestamp轉換成struct_time 格林威治時間

>>>time.gmtime()>>>time.gmtime(time.time())time.struct_time(tm_year=2017,tm_mon=2, tm_mday=15, tm_hour=6, tm_min=57, tm_sec=30, tm_wday=2, tm_yday=46,tm_isdst=0)

struct_time轉換成timestamp

>>>time.mktime(time.localtime())1487141742.0

struct_time轉換成format_time

>>>time.strftime("%Y-%m-%d%X")>>>time.strftime("%Y-%m-%d%X",time.localtime())'2017-02-1515:12:29'

生成固定格式的時間表示格式

>>>time.asctime(time.localtime())>>>time.ctime(time.time())'WedFeb 15 15:13:09 2017'

常見結構化時間組合

>>>PRint time.strftime("%Y-%m-%d %X")2017-02-1515:23:40

time加減

#timestamp加減單位以秒為單位

>>>import time>>>t1= time.time()>>>t2=t1+10>>>print time.ctime(t1)#Wed Oct 26 21:15:30 2016>>>print time.ctime(t2)#Wed Oct 26 21:15:40 2016WedFeb 15 15:24:53 2017WedFeb 15 15:25:03 2017

datetime模塊

datetime是Python處理日期和時間的標準庫。注意到datetime是模塊,datetime模塊還包含一個datetime類,通過fromdatetime import datetime導入的才是datetime這個類。如果僅導入import datetime,則必須引用全名datetime.datetime。

獲取當前日期和時間

>>>from datetime import datetime>>> now = datetime.now() # 獲取當前datetime>>>print(now)2015-05-1816:28:07.198690>>>print(type(now))<class'datetime.datetime'>

獲取指定日期和時間

要指定某個日期和時間,我們直接用參數構造一個datetime:

>>>from datetime import datetime>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期時間創建datetime>>>print(dt)2015-04-1912:20:00

datetime轉換為timestamp

在計算機中,時間實際上是用數字表示的。我們把1970年1月1日 00:00:00 UTC+00:00時區的時刻稱為epoch time,記為0(1970年以前的時間timestamp為負數),當前時間就是相對于epoch time的秒數,稱為timestamp。

可以認為:

timestamp= 0 = 1970-1-1 00:00:00 UTC+0:00

對應的北京時間是:

timestamp= 0 = 1970-1-1 08:00:00 UTC+8:00

可見timestamp的值與時區毫無關系,因為timestamp一旦確定,其UTC時間就確定了,轉換到任意時區的時間也是完全確定的,這就是為什么計算機存儲的當前時間是以timestamp表示的,因為全球各地的計算機在任意時刻的timestamp都是完全相同的(假定時間已校準)。

把一個datetime類型轉換為timestamp只需要簡單調用timestamp()方法:

>>>from datetime import datetime>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期時間創建datetime>>> dt.timestamp() # 把datetime轉換為timestamp

1429417200.0

注意Python的timestamp是一個浮點數。如果有小數位,小數位表示毫秒數。

timestamp轉換為datetime

要把timestamp轉換為datetime,使用datetime提供的fromtimestamp()方法:

>>>from datetime import datetime>>>t = 1429417200.0>>>print(datetime.fromtimestamp(t))2015-04-1912:20:00

注意到timestamp是一個浮點數,它沒有時區的概念,而datetime是有時區的。上述轉換是在timestamp和本地時間做轉換。本地時間是指當前操作系統設定的時區。

str轉換為datetime

很多時候,用戶輸入的日期和時間是字符串,要處理日期和時間,首先必須把str轉換為datetime。轉換方法是通過datetime.strptime()實現,需要一個日期和時間的格式化字符串:

>>>from datetime import datetime>>>cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')>>>print(cday)2015-06-0118:19:59

字符串'%Y-%m-%d%H:%M:%S'規定了日期和時間部分的格式。詳細的說明參考Python文檔。

注意轉換后的datetime是沒有時區信息的。

datetime轉換為str

如果已經有了datetime對象,要把它格式化為字符串顯示給用戶,就需要轉換為str,轉換方法是通過strftime()實現的,同樣需要一個日期和時間的格式化字符串:

>>>from datetime import datetime>>>now = datetime.now()>>>print(now.strftime('%a, %b %d %H:%M'))Mon,May 05 16:28

datetime加減

對日期和時間進行加減實際上就是把datetime往后或往前計算,得到新的datetime。加減可以直接用+和-運算符,不過需要導入timedelta這個類:

>>>from datetime import datetime, timedelta>>>now = datetime.now()>>>nowdatetime.datetime(2015,5, 18, 16, 57, 3, 540997)>>>now + timedelta(hours=10)datetime.datetime(2015,5, 19, 2, 57, 3, 540997)>>>now - timedelta(days=1)datetime.datetime(2015,5, 17, 16, 57, 3, 540997)>>>now + timedelta(days=2, hours=12)datetime.datetime(2015,5, 21, 4, 57, 3, 540997)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚东县| 徐水县| 黔西| 三明市| 泗水县| 思茅市| 威信县| 信宜市| 巍山| 樟树市| 武功县| 明水县| 瑞丽市| 嘉荫县| 石屏县| 秦安县| 米泉市| 志丹县| 哈密市| 灵川县| 新干县| 邢台市| 屏东市| 新田县| 克山县| 攀枝花市| 随州市| 西青区| 苏尼特右旗| 寿阳县| 鹤山市| 隆子县| 南投市| 晋州市| 镇安县| 永安市| 郓城县| 察隅县| 察隅县| 襄垣县| 双辽市|