欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的日期時(shí)間處理詳解

 更新時(shí)間:2016年11月17日 08:57:57   作者:笑虎  
Python程序能用很多方式處理日期和時(shí)間。轉(zhuǎn)換日期格式是一個(gè)常見的例行瑣事,這篇文章主要介紹了Python中的日期時(shí)間處理的幾種方式的區(qū)別和聯(lián)系,需要的朋友可以參考下

Python中關(guān)于時(shí)間、日期的處理庫有三個(gè):time、datetime和Calendar,其中datetime又有datetime.date、datetime.time、datetime.datetime三個(gè)類。而時(shí)間又可以分為時(shí)間戳、本地時(shí)間和UTC時(shí)間(世界標(biāo)準(zhǔn)時(shí)間)。是不是聽起來有點(diǎn)亂?那么他們相互之間有什么區(qū)別?有什么聯(lián)系?又如何轉(zhuǎn)換呢?

time模塊

在time模塊中,時(shí)間有三種表現(xiàn)形式:

時(shí)間戳,一般指Unix時(shí)間戳,是從1970年開始到現(xiàn)在的秒數(shù)。
本地時(shí)間的struct_time形式:一個(gè)長度為11的命名元組,第一位為年,第二位為月....
UTC時(shí)間的struct_time形式:一個(gè)長度為11的命名元組,類似于上個(gè),只不過為UTC時(shí)間
其中后兩者的類型一致,區(qū)別在于一個(gè)是本地時(shí)間(localtime),一個(gè)是utc時(shí)間。

各種時(shí)間形式的獲取方式:

print("time stamp:", time.time())     # 時(shí)間戳:1479193181.829338

print("local time:", time.localtime())  # struct_time類型的本地時(shí)間
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=15, tm_hour=14, tm_min=59, tm_sec=41, tm_wday=1, tm_yday=320, tm_isdst=0)

print("utc time:", time.gmtime())     # struct_time類型的utc時(shí)間
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=15, tm_hour=6, tm_min=59, tm_sec=41, tm_wday=1, tm_yday=320, tm_isdst=0)

這里可以看出,本地時(shí)間(北京時(shí)間)和UTC時(shí)間相差8個(gè)小時(shí)。

各種時(shí)間形式的轉(zhuǎn)換:

time_stamp = time.time()        # 時(shí)間戳
local_time = time.localtime(time_stamp)# 時(shí)間戳轉(zhuǎn)struct_time類型的本地時(shí)間
utc_time = time.gmtime(time_stamp)   # 時(shí)間戳轉(zhuǎn)struct_time類型的utc時(shí)間

time_stamp_1 = time.mktime(local_time) # struct_time類型的本地時(shí)間轉(zhuǎn)時(shí)間戳
time_stamp_2 = calendar.timegm(utc_time)# struct_time類型的utc時(shí)間轉(zhuǎn)時(shí)間戳
print(time_stamp, time_stamp_1, time_stamp_2)

各種時(shí)間形式和字符串之間的轉(zhuǎn)換:

print(time.ctime(time_stamp))    # 時(shí)間戳轉(zhuǎn)字符串(本地時(shí)間字符串)

print(time.asctime(local_time))   # struct_time類型的本地時(shí)間轉(zhuǎn)字符串
print(time.asctime(utc_time))    # struct_time類型的utc時(shí)間轉(zhuǎn)字符串

# struct_time類型的本地時(shí)間轉(zhuǎn)字符串:自定義格式
print(time.strftime("%Y-%m-%d, %H:%M:%S, %w", local_time))
# struct_time類型的utc時(shí)間轉(zhuǎn)字符串:自定義格式
print(time.strftime("%Y-%m-%d, %H:%M:%S, %w", utc_time))

struct_time = time.strptime("2016-11-15, 15:32:12, 2", "%Y-%m-%d, %H:%M:%S, %w")    # 字符串轉(zhuǎn)struct_time類型

datetime模塊

接下來再看datetime模塊。該模塊中包含4個(gè)主要的類:

datetime.time:時(shí)間類,只包含時(shí)、分、秒、微秒等時(shí)間信息。
datetime.date:日期類,只包含年、月、日、星期等日期信息。
datetime.datetime:日期時(shí)間類,包含以上兩者的全部信息。
datetime.timedelta:時(shí)間日期差值類,用來表示兩個(gè)datetime之間的差值。
關(guān)于各個(gè)類的基本用法比較簡單,建議看官方文檔:datetime module

這里主要說一下datetime.datetime類的用法,其他兩個(gè)的用法類似,只有輕微差別:

a_datetime_local = datetime.datetime.now() # 獲取datetime.datetime類型的本地時(shí)間
a_datetime_utc = datetime.datetime.utcnow() # 獲取datetime.datetime類型的utc時(shí)間

# datetime.datetime類型轉(zhuǎn)字符串
print(a_datetime_local.strftime("%Y-%m-%d, %H:%M:%S, %w")) 
# datetime.datetime類型轉(zhuǎn)字符串
print(a_datetime_utc.strftime("%Y-%m-%d, %H:%M:%S, %w"))  

a_datetime = datetime.datetime.strptime("2016-11-15, 15:32:12, 2", "%Y-%m-%d, %H:%M:%S, %w")  # 字符串轉(zhuǎn)

datetime.datetime格式

datetime類型和時(shí)間戳、struct_time類型的相互轉(zhuǎn)換

datetime.datetime和時(shí)間戳、struct_time之間,也能夠相互轉(zhuǎn)換:

time_stamp = a_datetime_local.timestamp()  # datetime類型轉(zhuǎn)時(shí)間戳
print(time_stamp)

a_datetime_local = datetime.datetime.fromtimestamp(time.time())   # 時(shí)間戳轉(zhuǎn)datetime.datetime類型的本地時(shí)間
a_datetime_utc = datetime.datetime.utcfromtimestamp(time.time())  # 時(shí)間戳轉(zhuǎn)datetime.datetime類型的utc時(shí)間
print(a_datetime_local, a_datetime_utc)

print(a_datetime_local.timetuple())   # datetime類型轉(zhuǎn)struct_time類型
print(a_datetime_utc.utctimetuple())  # datetime類型轉(zhuǎn)struct_time類型

本文主要講了各種時(shí)間、日期類型的基本用法,以及他們之間相互轉(zhuǎn)換的方法,以及他們和字符串之間相互轉(zhuǎn)換的方法。

老規(guī)矩,文中代碼已上傳至github:https://github.com/xianhu/LearnPython

本站備份下載地址:http://xz.jb51.net:81/201611/yuanma/LearnPython(jb51.net).zip

相關(guān)文章

  • Python sqlparse解析SQL表血緣追蹤實(shí)現(xiàn)

    Python sqlparse解析SQL表血緣追蹤實(shí)現(xiàn)

    這篇文章主要為大家介紹了Python sqlparse解析SQL表血緣追蹤實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Python完整實(shí)現(xiàn)俄羅斯方塊游戲全解

    Python完整實(shí)現(xiàn)俄羅斯方塊游戲全解

    俄羅斯方塊是一個(gè)最初由阿列克謝帕吉特諾夫在蘇聯(lián)設(shè)計(jì)和編程的益智類視頻游戲。本文將利用python實(shí)現(xiàn)這一經(jīng)典的小游戲,需要的可以參考一下
    2022-03-03
  • Swift中的協(xié)議(protocol)學(xué)習(xí)教程

    Swift中的協(xié)議(protocol)學(xué)習(xí)教程

    協(xié)議中可以定義一些基本的需要被實(shí)例化的屬性,這里我們就來看一下Swift中的協(xié)議(protocol)學(xué)習(xí)教程,需要的朋友可以參考下
    2016-07-07
  • python中的opencv?圖像梯度

    python中的opencv?圖像梯度

    這篇文章主要介紹了python中的opencv?圖像梯度,圖像梯度計(jì)算的是圖像變化的速度,圖像梯度計(jì)算需要求導(dǎo)數(shù),但是圖像梯度一般通過計(jì)算像素值的差來得到梯度的近似值,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-06-06
  • python調(diào)用bash?shell腳本方法

    python調(diào)用bash?shell腳本方法

    這篇文章主要給大家分享了額python調(diào)用bash?shell腳本方法,os.system(command)、os.popen(command)等方法,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • Django Session和Cookie分別實(shí)現(xiàn)記住用戶登錄狀態(tài)操作

    Django Session和Cookie分別實(shí)現(xiàn)記住用戶登錄狀態(tài)操作

    這篇文章主要介紹了Django Session和Cookie分別實(shí)現(xiàn)記住用戶登錄狀態(tài)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python使用selenium模擬瀏覽器進(jìn)入好友QQ空間留言功能

    python使用selenium模擬瀏覽器進(jìn)入好友QQ空間留言功能

    這篇文章主要介紹了python使用selenium模擬瀏覽器進(jìn)入好友QQ空間留言,在本文實(shí)現(xiàn)過程中需要注意的是留言框和發(fā)表按鈕在不同的frame,發(fā)表在外面的一層,具體實(shí)現(xiàn)過程跟隨小編一起看看吧
    2022-04-04
  • python 實(shí)現(xiàn)關(guān)聯(lián)規(guī)則算法Apriori的示例

    python 實(shí)現(xiàn)關(guān)聯(lián)規(guī)則算法Apriori的示例

    這篇文章主要介紹了python 實(shí)現(xiàn)關(guān)聯(lián)規(guī)則算法Apriori的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • python Pexpect 實(shí)現(xiàn)輸密碼 scp 拷貝的方法

    python Pexpect 實(shí)現(xiàn)輸密碼 scp 拷貝的方法

    今天小編就為大家分享一篇python Pexpect 實(shí)現(xiàn)輸密碼 scp 拷貝的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 控制Python浮點(diǎn)數(shù)輸出位數(shù)的操作方法

    控制Python浮點(diǎn)數(shù)輸出位數(shù)的操作方法

    在python的輸出結(jié)果中,尤其是浮點(diǎn)數(shù)的輸出,當(dāng)我們需要寫入文本文件時(shí),最好是采用統(tǒng)一的輸出格式,這樣也能夠增強(qiáng)結(jié)果的可讀性,這篇文章主要介紹了控制Python浮點(diǎn)數(shù)輸出位數(shù)的方法,需要的朋友可以參考下
    2022-04-04

最新評(píng)論