1. 程式人生 > >python2.7入門--- 日期和時間

python2.7入門--- 日期和時間

    Python 程式能用很多方式處理日期和時間,轉換日期格式是一個常見的功能。我們今天就來看一下這方面,首先得知道,Python 提供了一個 time 和 calendar 模組可以用於格式化日期和時間。時間間隔是以秒為單位的浮點小數。每個時間戳都以自從1970年1月1日午夜(曆元)經過了多長時間來表示。然後呢,Python 的 time 模組下有很多函式可以轉換常見日期格式。如函式time.time()用於獲取當前時間戳, 如下例項:

#!/usr/bin/python# -*- coding: UTF-8 -*-import time;# 引入time模組

ticks = time.time
()print"當前時間戳為:", ticks

    以上例項輸出結果為:

當前時間戳為:1459994552.51

    另外說明下哈,時間戳單位最適於做日期運算。但是1970年之前的日期就無法以此表示了。太遙遠的日期也不行,UNIX和Windows只支援到2038年。然後呢,我們有時候會發現,很多Python函式用一個元組裝起來的9組數字處理時間。那麼,我們就來通過下面的表單,看一下什麼是時間元組。。。

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

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

序號屬性
0tm_year2008
1tm_mon1 到 12
2tm_mday1 到 31
3tm_hour0 到 23
4tm_min0 到 59
5tm_sec0 到 61 (60或61 是閏秒)
6tm_wday0到6 (0是週一)
7tm_yday1 到 366(儒略曆)
8tm_isdst-1, 0, 1, -1是決定是否為夏令時的旗幟

    接下來我們就來看,如何獲取當前的時間,我們只需從返回浮點數的時間戳方式向時間元組轉換,只要將浮點數傳遞給如localtime之類的函式:

#!/usr/bin/python# -*- coding: UTF-8 -*-
import time localtime = time.localtime(time.time())print"本地時間為 :", localtime

    以上例項輸出結果為:

本地時間為: time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)

    我們再來實現獲取格式化時間,我們可以根據需求選取各種格式,但是最簡單的獲取可讀的時間模式的函式是asctime():

#!/usr/bin/python# -*- coding: UTF-8 -*-import time

localtime = time.asctime( time.localtime(time.time()))print"本地時間為 :", localtime

    以上例項輸出結果為:

本地時間為:ThuApr710:05:212016

    然後來獲取格式化日期,我們可以使用 time 模組的 strftime 方法來格式化日期:

time.strftime(format[, t])
#!/usr/bin/python# -*- coding: UTF-8 -*-import time

# 格式化成2016-03-20 11:45:39形式print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())# 格式化成Sat Mar 28 22:24:24 2016形式print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())# 將格式字串轉換為時間戳
a ="Sat Mar 28 22:24:24 2016"print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

    以上例項輸出結果為:

2016-04-0710:25:09ThuApr0710:25:0920161459175064.0

    我們再來看下python中時間日期格式化符號:

  • %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 當前時區的名稱
  • %% %號本身

    再來個有意思的,獲取某月日曆。。。Calendar模組有很廣泛的方法用來處理年曆和月曆,例如:

#!/usr/bin/python# -*- coding: UTF-8 -*-import calendar

cal = calendar.month(2016,1)print"以下輸出2016年1月份的日曆:"print cal;

    以上例項輸出結果為:

以下輸出20161月份的日曆:January2016MoTuWeThFrSaSu12345678910111213141516171819202122232425262728293031

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

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

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

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

    再來看日曆calendar模組,此模組的函式都是日曆相關的,例如列印某月的字元月曆。星期一是預設的每週第一天,星期天是預設的最後一天。更改設定需呼叫calendar.setfirstweekday()函式。模組包含了以下內建函式:

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

    在Python中,其他處理日期和時間的模組,還有其它的相關函式,如下:

    最後再來個datetime的例子就完事了啊。。。

#!/usr/bin/python# -*- coding: UTF-8 -*-import datetime
i = datetime.datetime.now()print("當前的日期和時間是 %s"% i)print("ISO格式的日期和時間是 %s"% i.isoformat())print("當前的年份是 %s"%i.year)print("當前的月份是 %s"%i.month)print("當前的日期是  %s"%i.day)print("dd/mm/yyyy 格式是  %s/%s/%s"%(i.day, i.month, i.year))print("當前小時是 %s"%i.hour)print("當前分鐘是 %s"%i.minute)print("當前秒是  %s"%i.second)
    大家可以來試試輸出結果哈,如果感覺不錯的話,請多多點贊支援哦。。。

相關推薦

python2.7入門--- 日期時間

    Python 程式能用很多方式處理日期和時間,轉換日期格式是一個常見的功能。我們今天就來看一下這方面,首先得知道,Python 提供了一個 time 和 calendar 模組可以用於格式化日期

Flask從入門到精通之Flask-Moment本地化日期時間

display second res width 依賴 post spl 分發 temp   Moment.js 是一個簡單易用的輕量級JavaScript日期處理類庫,提供了日期格式化、日期解析等功能。它支持在瀏覽器和NodeJS兩種環境中運行。此類庫能夠 將給定的任意日

Linux常用操作命令(7):date命令顯示或設置系統日期時間

Linux 日期 date 8.7 《Linux學習並不難》Linux常用操作命令(7):date命令顯示或設置系統日期和時間 使用date命令可以顯示和設置計算機系統的日期和時間。只有超級用戶才有權限使用date命令設置 日期和時間,而一般用戶只能使用date命令顯示日期和時間。

python3.5入門筆記(12) 日期時間

1、時間戳 時間戳表示從1970年1月1日0時0分到現在經過了多少秒. 2、時間格式化符號 %y兩位數的年份表示(00-99) %Y 四位數的年份表示(000-9999) %m月份(01-12) %d月內中的一天(0-31) %H24小時制小時數(0-23)

mysql5.7官網直譯資料型別--日期時間型別1

11.3 Date and Time Types 日期和時間型別 11.3.1 The DATE, DATETIME, and TIMESTAMP Types 日期,日期時間,和時間戳型別 11.3.2 The TIME Type 時間型別 11.3.3 The YEAR

MATLAB的日期時間

width 當前時間 tla 星期 ron num center 顯示 spa MATLAB的日期和時間常用函數 函數 說明 calender 返回日歷 clock 當前時間 date 當前日期 weekday 星期幾 now 當前的日期和時間

MYSQL學習筆記三:日期時間函數

div content minute name top fonts table hmm 指定 MYSQL學習筆記三:日期和時間函數 1. 獲取當前日期的函數和獲取當前時間的函數 /*獲取當前日期的函數和獲取當前時間的函數。將日期以‘YYYY-MM-DD‘或者’YYYYM

JAVA中日期時間的格式化選項

println 對象 bsp lec pub cti class 日子 月份 一、使用printf方法 1 import java.util.Date; 2 import java.util.Scanner; 3 4 5 public class Test

Python自動化3.0-------學習之路------日期時間

unix dst python自動化 相關 http -a 年份 字符串 cti Python 日期和時間 Python 程序能用很多方式處理日期和時間,轉換日期格式是一個常見的功能。 Python 提供了一個 time 和 calendar 模塊可以用於格式化日期和時間。

Java8 日期時間實用技巧

ron 定義 com 閏年 上下 代碼 添加 sta date 新的日期API ZoneId: 時區ID,用來確定Instant和LocalDateTime互相轉換的規則 Instant: 用來表示時間線上的一個點 LocalDate: 表示沒有時區的日期, Loca

數字日期時間

正在 作業 fff 數學家 nds num hour 開始 tro 數字的四舍五入 問題:   你想對浮點數執行指定精度的舍入運算。 解決方法:   對於簡單的舍入運算,使用內置的round(value, ndigits) 函數即可。比如: 1 #保留小數點後1位數,因

[Python3]日期時間處理

num import time模塊 now() sda 年份 -s 好的 等價 概述 在python中, date、time、datetime類提供了一系列處理日期、時間和時間間隔的函數。 在Python裏我們大致可以把其實現日期時間類分為5個: date僅用

DevExpress的DateEdit設置顯示日期時間

打開 log tools sta tails exp this att cnblogs DevExpress的DateEdit設置顯示日期和時間 http://blog.csdn.net/david_520042/article/details/51096975 1. 設置

datetime處理日期時間

datetime 時間 2017年 sep nbsp 星期 ber rom date datetime.now() # 獲取當前datetimedatetime.utcnow() datetime(2017, 5, 23, 12, 20) # 用指定日期時間創建dat

作業11-datetime處理日期時間

utc 指定日期 src 分享 etime img 星期六 日期 cnblogs datetime.now() # 獲取當前datetime datetime.utcnow() datetime(2017, 5, 23, 12, 20) # 用指定日期時間創建dat

4 Python 日期時間

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

怎樣在excel中快速輸入當前日期時間

clas strong ima 顯示效果 分享圖片 找到 如何 們的 get 找到並啟動我們的Microsoft Excel軟件,如圖 在excel中,我們先演示如何快速輸入當前“日期”,先在一個“單元格”裏面輸入“Ctrl+;”(就是“Ctrl“鍵

Python2.7.14安裝pip配置安裝及虛擬環境搭建

%20 環境變量path 網上 之前 安裝文件 script 記得 關於 過程 目錄 前言 1 Python2.7.14安裝 2 pip配置安裝 3 虛擬環境安裝 前言 今天在搭建阿裏雲服務器,需要安裝Python相關環境,之前在本機都已

JDK8版本之日期時間API詳解

nds 可變 nan r.java 允許 應該 之一 常用 技巧 伴隨lambda表達式、streams以及一系列小優化,Java 8 推出了全新的日期時間API,在教程中我們將通過一些簡單的實例來學習如何使用新API。Java處理日期、日歷和時間的方式一直為社區所詬病,將

在Java 8中如何處理日期時間

工廠方法 相同 例如 屬性。 ant arch java 去掉 靜態常量 常有人問我學習一個新庫的最好方式是什麽?我的答案是在實際項目中使用它。項目中有很多真正的需求驅使開發者去發掘並學習新庫。簡單得說就是任務驅動學習探 索。這對Java 8新日期時間API也不例外。我創建