1. 程式人生 > >Python 日期時間

Python 日期時間

Python程式能用很多方式處理日期和時間。轉換日期格式是一個常見的例行瑣事。Python有一個time and calendar模組可以幫忙。


什麼是Tick?

時間間隔是以秒為單位的浮點小數。

每個時間戳都以自從1970年1月1日午夜(曆元)經過了多長時間來表示。

Python附帶的受歡迎的time模組下有很多函式可以轉換常見日期格式。如函式time.time()用ticks計時單位返回從12:00am, January 1, 1970(epoch) 開始的記錄的當前作業系統時間, 如下例項:

#!/usr/bin/pythonimport time;# This is required to include time module.
ticks = time.time()print"Number of ticks since 12:00am, January 1, 1970:", ticks

以上例項輸出結果:

Number of ticks since 12:00am,January1,1970:7186862.73399

Tick單位最適於做日期運算。但是1970年之前的日期就無法以此表示了。太遙遠的日期也不行,UNIX和Windows只支援到2038年某日。


什麼是時間元組?

很多Python函式用一個元組裝起來的9組數字處理時間:

序號 欄位
0 4位數年 2008
1 1 到 12
2 1到31
3 小時 0到23
4 分鐘
5 0到61 (60或61 是閏秒)
6 一週的第幾日 0到6 (0是週一)
7 一年的第幾日 1到366 (儒略曆)
8 夏令時 -1, 0, 1, -1是決定是否為夏令時的旗幟

上述也就是struct_time元組。這種結構具有如下屬性:

序號 屬性
0 tm_year 2008
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 (60或61 是閏秒)
6 tm_wday 0到6 (0是週一)
7 tm_yday 1 到 366(儒略曆)
8 tm_isdst -1, 0, 1, -1是決定是否為夏令時的旗幟

獲取當前時間

從返回浮點數的時間輟方式向時間元組轉換,只要將浮點數傳遞給如localtime之類的函式。

#!/usr/bin/pythonimport time;

localtime = time.localtime(time.time())print"Local current time :", localtime

以上例項輸出結果:

Local current time : time.struct_time(tm_year=2013, tm_mon=7, 
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)

獲取格式化的時間

你可以根據需求選取各種格式,但是最簡單的獲取可讀的時間模式的函式是asctime():

#!/usr/bin/pythonimport time;

localtime = time.asctime( time.localtime(time.time()))print"Local current time :", localtime

以上例項輸出結果:

Local current time :TueJan1310:17:092009

獲取某月日曆

Calendar模組有很廣泛的方法用來處理年曆和月曆,例如列印某月的月曆:

#!/usr/bin/pythonimport calendar

cal = calendar.month(2008,1)print"Here is the calendar:"print cal;

以上例項輸出結果:

Hereis the calendar:January2008MoTuWeThFrSaSu12345678910111213141516171819202122232425262728293031

Time模組

Time模組包含了以下內建函式,既有時間處理相的,也有轉換時間格式的:

序號 函式及描述
1 time.altzone
返回格林威治西部的夏令時地區的偏移秒數。如果該地區在格林威治東部會返回負值(如西歐,包括英國)。對夏令時啟用地區才能使用。
2 time.asctime([tupletime])
接受時間元組並返回一個可讀的形式為"Tue Dec 11 18:07:14 2008"(2008年12月11日 週二18時07分14秒)的24個字元的字串。
3 time.clock( )
用以浮點數計算的秒數返回當前的CPU時間。用來衡量不同程式的耗時,比time.time()更有用。
4 time.ctime([secs])
作用相當於asctime(localtime(secs)),未給引數相當於asctime()
5 time.gmtime([secs])
接收時間輟(1970紀元後經過的浮點秒數)並返回格林威治天文時間下的時間元組t。注:t.tm_isdst始終為0
6 time.localtime([secs])
接收時間輟(1970紀元後經過的浮點秒數)並返回當地時間下的時間元組t(t.tm_isdst可取0或1,取決於當地當時是不是夏令時)。
11 time.time( )
返回當前時間的時間戳(1970紀元後經過的浮點秒數)。
12 time.tzset()
根據環境變數TZ重新初始化時間相關設定。

Time模組包含了以下2個非常重要的屬性:

序號 屬性及描述
1 time.timezone
屬性time.timezone是當地時區(未啟動夏令時)距離格林威治的偏移秒數(>0,美洲;<=0大部分歐洲,亞洲,非洲)。
2 time.tzname
屬性time.tzname包含一對根據情況的不同而不同的字串,分別是帶夏令時的本地時區名稱,和不帶的。

日曆(Calendar)模組

此模組的函式都是日曆相關的,例如列印某月的字元月曆。

星期一是預設的每週第一天,星期天是預設的最後一天。更改設定需呼叫calendar.setfirstweekday()函式。模組包含了以下內建函式:

序號 函式及描述
1 calendar.calendar(year,w=2,l=1,c=6)
返回一個多行字串格式的year年年曆,3個月一行,間隔距離為c。 每日寬度間隔為w字元。每行長度為21* W+18+2* C。l是每星期行數。
2 calendar.firstweekday( )
返回當前每週起始日期的設定。預設情況下,首次載入caendar模組時返回0,即星期一。
3 calendar.isleap(year)
是閏年返回True,否則為false。
4 calendar.leapdays(y1,y2)
返回在Y1,Y2兩年之間的閏年總數。
5 calendar.month(year,month,w=2,l=1)
返回一個多行字串格式的year年month月日曆,兩行標題,一週一行。每日寬度間隔為w字元。每行的長度為7* w+6。l是每星期的行數。
6 calendar.monthcalendar(year,month)
返回一個整數的單層巢狀列表。每個子列表裝載代表一個星期的整數。Year年month月外的日期都設為0;範圍內的日子都由該月第幾日表示,從1開始。
7 calendar.monthrange(year,month)
返回兩個整數。第一個是該月的星期幾的日期碼,第二個是該月的日期碼。日從0(星期一)到6(星期日);月從1到12。
8 calendar.prcal(year,w=2,l=1,c=6)
相當於 print calendar.calendar(year,w,l,c).
9 calendar.prmonth(year,month,w=2,l=1)
相當於 print calendar.calendar(year,w,l,c)。
10 calendar.setfirstweekday(weekday)
設定每週的起始日期碼。0(星期一)到6(星期日)。
11 calendar.timegm(tupletime)
和time.gmtime相反:接受一個時間元組形式,返回該時刻的時間輟(1970紀元後經過的浮點秒數)。
12 calendar.weekday(year,month,day)
返回給定日期的日期碼。0(星期一)到6(星期日)。月份為 1(一月) 到 12(12月)。

其他相關模組和函式

在Python種,其他處理日期和時間的模組還有:

相關推薦

Python日期時間格式化

from datetime import datetime update_stan = '18-11-07 10:10:10' type(update_stan ) # output: <type 'str'> # 字串轉為日期時間格式 update_str = da

Python 日期時間

Python程式能用很多方式處理日期和時間。轉換日期格式是一個常見的例行瑣事。Python有一個time and calendar模組可以幫忙。 什麼是Tick? 時間間隔是以秒為單位的浮點小數。 每個時間戳都以自從1970年1月1日午夜(曆元)經過了多長時間來表示。

python日期時間轉為字串或者格式化輸出

年月日時分秒 >>> print datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 2017-07-15 15:01:35

Python 日期時間格式化

例子:             import time             print time.strftime('%Y-%m-%d,%H:%M:%S',time.localtime(time.time())) 結果:            2009-09-26,13:

Python日期時間函式

所有日期、時間的api都在datetime模組內。1. 日期輸出格式化 datetime => stringimport datetimenow = datetime.datetime.now()now.strftime('%Y-%m-%d %H:%M:%S')  輸出

Python日期時間型別轉換

一、time轉換為datetime1)datetime.datetime.fromtimestamp(tm )2)datetime.datetime.utcfromtimestamp(tm )二、datetime->time1)dt01.timestamp()2)dt0

python 日期 時間處理

ptime block del timedelta day 其中 bsp 包含 hour import datetime# 獲取現在的時間日期today = datetime.datetime.now()# 創建一個時間對象create_datetime = datetim

Unix時間戳轉日期時間格式,C#、Java、Python各語言實現!

[1] oda total 轉換 n) str nbsp -m col 之前有個Q上好友沒事問我,怎麽自己寫Unix時間戳轉日期時間?於是我就順手寫了個C#版本給他!最近想起來,就萌發多寫幾個語言的版本分享,權當練習思路外加熟悉另外兩種語言。 先說轉換步驟 先處理年份

4 Python 日期時間

日期 doc 打印 小數 -a windows cnblogs 更改 常見   Python 程序能用很多方式處理日期和時間,轉換日期格式是一個常見的功能。   Python 提供了一個 time 和 calendar 模塊可以用於格式化日期和時間。   時間間隔是以秒為單

Python 日期時間

打印 1970年1月1日 san lock 開始 asc 當地時間 運行 oca Python 程序能用很多方式處理日期和時間,轉換日期格式是一個常見的功能。 Python 提供了一個 time 和 calendar 模塊可以用於格式化日期和時間。 時間間隔是以秒為單位的浮

python日期時間

OS 某月 tick 日期和時間 字符 AR port 打印 utf-8 time 模塊下有很多函數可以轉換常見日期格式。如函數time.time()用於獲取當前時間戳, 例: #!/usr/bin/python # -*- coding: UTF-8 -*- impo

送你6 個 Python日期時間庫!讓你的Python更加得心應手!

dateutil etime sco lar code sla logs log mage 內建的 datetime 模塊 讓我們看看其他庫是如何處理這種轉換的。 Dateutil 通過 Arrow datetime 類的實例,你可以訪問 Arro

Python獲取並輸出當前日期時間

日期時間 日期 TP title 時間 ID win cal class Python獲取並輸出當前日期時間 學習了:https://www.cnblogs.com/kerwinC/p/5760811.html time.strftime(‘%Y-%m-%d %H:%M:

Python日期時間 2018-07-30

時區 ont ctime 輸出 當前時間 .py str asc 1-1 Python提供了一個time和calendar模塊用於格式化日期和時間,時間間隔是以秒為單位的浮點小數,每個時間戳都以自從1970年午夜(歷元)經過了多長時間來表示,時間戳單位最適於做日期運算。但

python時間日期calendar

生活 類型 http 年份 lse pri 信息 ext clas calendar是與日歷相關的模塊,calendar模塊文件裏定義了很多類型,主要有Calendar,TextCalendar以及HTMLCalendar類型。其中,Calendar是TextCalend

python 獲取整點時間戳,半整點時間戳 ,同時將時間戳轉換成 日期時間

%s bsp ray mktime timestamp 技術分享 取整 amp style import time, datetime def gettime(): for x in range(24): a = datetime.

Python日期時間

轉載自:http://www.cnblogs.com/feeland/      Python提供了多個內建模組用於操作日期時間,如calendar,time,datetime。calendar用於處理日曆相關 ;time提供的介面與C標準庫time.h基本一致;而其中應

python ---Pandas時間序列:生成指定範圍的日期

        引入包 import pandas as pd import numpy as np 1.生成指定範圍的日期 print pd.date_range('11/1/2018','11/9/2018') 輸出: &n

Python日期datetime,字串,時間戳相互轉換

1、#把datetime轉成字串:   dt.strftime("%Y-%m-%d")2、#把字串轉成datetime:   datetime.strptime( string, "%Y-%m-%d") 3、#把字串轉成時間戳形式:  先

python 中hive 取日期時間的方法

#!/usr/bin/env python3 import sys import os import time, datetime sys.path.append(os.getenv('HIVE_TASK')) from HiveTask import HiveTask ht = HiveTask()