Python 日期和時間戳的轉換

Python 日期和時間戳的轉換

1. Python中處理時間的模塊

Python中處理時間的模塊有timedatetimecalendar

在Python中表示時間的方式:

  • 時間戳:10位整數位和若干小數位,例如 1551153156.6358607
  • 元組(struct_time):? 含有9個元素的元組,例如 (tm_year=2011, tm_mon=9, tm_mday=28, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=271, tm_isdst=-1)
  • 格式化字符串: 格式化的時間字符串, 例如 '2019-02-26 12:45:46'

time模塊,以元組(struct_time)為核心實現時間戳和格式化時間字符串的相互轉換。

datetime模塊,以datetime類實例對象為核心實現時間戳和格式化時間字符串的相互轉換。

2. Python的time模塊

time模塊是通過調用C庫實現的,所以在有些平臺上無法使用。大部分接口和C標準庫的time.h一致。

使用time模塊來進行格式化時間字符串和時間戳的相互轉換。

2.1 將時間戳轉換為格式化字符串

使用time模塊獲取當前時間的時間戳:   

>>> import time
>>> time.time()
1551157481.034565

?將時間戳轉換為元組(struct_time):

>>> time.localtime(time.time())
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=2, tm_sec=1, tm_wday=1, tm_yday=57, tm_isdst=0)

元組(struct_time)轉換為格式化時間字符串

>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'2019-02-26 13:04:41'

2.2 將格式化字符串轉換為時間戳

將格式化時間字符串'2019-02-26 13:04:41'轉換為時間戳。

格式化時間字符串轉換為元組(struct_time):

>>> str_time = '2019-02-26 13:04:41'
>>> time.strptime(str_time, '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=4, tm_sec=41, tm_wday=1, tm_yday=57, tm_isdst=-1)

元組(struct_time)轉換為時間戳

>>> time.mktime(time.strptime(str_time, '%Y-%m-%d %H:%M:%S'))
1551157481.0

2.3 使用time模塊獲取當前日期和時間

使用time模塊獲取當前日期(使用當前時間的struct_time作為缺省參數)

>>> time.strftime('%Y-%m-%d')
'2019-02-26'

使用time模塊獲取當前時間(使用當前時間的struct_time作為缺省參數)

>>> time.strftime('%H:%M:%S')
'13:21:13'

3. Python 的datetime模塊

和time模塊相比,datetime模塊提供更直接易用的接口,功能也更加強大。

datetime模塊提供了處理日期和時間的類,既有簡單的方式,也有復雜的方式。它雖然支持日期和時間算法,但其實現是重點是輸出的格式化操作和更加有效的屬性提取功能。

3.1 datetime模塊中定義的類

datetime模塊中定義的類(這些類的對象都是不可變的):

  • datetime.date: 表示日期,常用的屬性有year、month和day
  • datetime.time: 表示時間,常用的屬性有hour、minute、second和microsecond
  • datetime.datetime: 表示日期時間
  • datetime.timedelta: 表示兩個date、time和datetime實例之間的時間間隔,最小單位可達微秒
  • datetime.tzinfo: 時區相關對象的抽象基類,由time和datetime類使用
  • datetime.timezone: Python3.2中新增的功能,實現tzinfo抽象基類的類,表示與UTC的固定偏移量

3.2 使用datetime模塊中的datetime類將時間戳轉換為格式化時間字符串

使用datetime類將時間戳轉換為datetime實例

?

>>> import time
>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(time.time())
>>> dt
datetime.datetime(2019, 2, 26, 15, 27, 28, 678923)

?

datetime實例轉換為格式化字符串

>>> dt.strftime('%Y-%m-%d %H:%M:%S')
'2019-02-26 15:27:28'

?

3.3 使用datetime模塊中的datetime類將格式化時間字符串轉換為時間戳

使用datetime類將格式化字符串'2019-02-26 15:27:28'轉換為datetime實例

>>> st = '2019-02-26 15:27:28'
>>> dt = datetime.strptime(st, '%Y-%m-%d %H:%M:%S')
>>> dt
datetime.datetime(2019, 2, 26, 15, 27, 28)

datetime實例轉轉為元組(struct_time)

>>> tp = dt.timetuple()
>>> tp
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=15, tm_min=27, tm_sec=28, tm_wday=1, tm_yday=57, tm_isdst=-1)

元組(struct_time)轉換為時間戳

>>> time.mktime(tp)
1551166048.0

也可以直接使用datetime實例的timestamp()函數直接獲取時間戳:

>>> dt.timestamp()
1551166048.0

?

3.4 使用datetime類獲取當前日期和時間

使用datetime類獲取當前日期

>>> datetime.now().date().strftime('%Y-%m-%d')
'2019-02-26'

?

使用datetime類獲取當前時間

>>> datetime.now().time().strftime('%H:%M:%S')
'15:48:43'

?

4. 參考資料

  • Python time模塊詳解
  • Python datetime模塊詳解
  • Python time模塊和datetime模塊詳解

轉載于:https://www.cnblogs.com/strivepy/p/10436213.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395050.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395050.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395050.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

快應用比賽_我的應用如何在國際學生比賽中獲得第三名

快應用比賽by Rafael Melo通過拉斐爾梅洛 我的應用如何在國際學生比賽中獲得第三名 (How my App won third place in an International Student Competition) I developed an App that won third place at the IEEE Mobile Applications Development Contest 2017 (IEEEmadC 2…

JAVA中String類的intern()方法的作用

一般我們變成很少使用到 intern這個方法,今天我就來解釋一下這個方法是干什么的,做什么用的 首先請大家看一個例子: public static void main(String[] args) throws Exception { String a "b" ; String b "b" ; …

java 如何排查內存溢出_java 內存溢出排查

測試代碼,如下示例:import java.util.ArrayList;import java.util.List;/*** Description 測試內存溢出, 啟動時設置參數,最大堆內存為1m, 內存溢出時dump出內存文件 -Xmx1m -XX:HeapDumpOutOfMemoryError* Author luzy* Date 2018/10/5 11:0…

《企業級ios應用開發實戰》一2.2 iOS框架介紹

2.2 iOS框架介紹 iOS衍生自Mac OS X的成熟內核,但iOS操作系統更緊湊和高效,支持iPhone和iPod Touch的硬件。iOS繼承了Mac OS X的風格,包括:統一的OS X 內核,針對網絡的BSD套接字,以及Objective-C和C/C編譯器…

python的opencv 車牌識別 開源_畢節進出口車牌識別系統怎么樣

畢節進出口車牌識別系統怎么樣 gzheu8il畢節進出口車牌識別系統怎么樣 系統拓撲圖如下:該系統以社區中心機房為樞紐,有機的將智慧家居住戶、社區數字化服務、物業數字化管理、社區智能化管理結合起來,真正的實現:住戶與住戶之間的…

了解使用JavaScript進行面向對象編程的基礎(并增強您的編碼…

by Kris Baillargeon通過克里斯拜倫 學習使用JavaScript進行面向對象編程的基礎知識(并增強您的編碼能力!) (Learn the basics of object-oriented programming with JavaScript (and supercharge your coding abilities!)) As a moderator of the freeCodeCamp ch…

postgresql的別名要用雙引號才可以

postgresql的別名要用雙引號""才可以 轉載于:https://www.cnblogs.com/handsome1013/p/10443001.html

imx6 mac地址設置

imx6的mac地址總是固定的值,所以需要更改,采用的方法是在uboot中設置環境變量,之后在kernel中使用uboot中設置的mac地址的值。本文記錄更改的過程。 參考鏈接: http://www.cnblogs.com/zengjfgit/p/5711304.html uboot lib_arm/board.c …

java try catch陷阱_Java異常處理最佳實踐及陷阱防范

原標題:Java異常處理最佳實踐及陷阱防范出自《深夜里的程序猿》作者:wangzenghuang前言不管在我們的工作還是生活中,總會出現各種“錯誤”,各種突發的“異常”。無論我們做了多少準備,多少測試,這些異常總會…

vivo手機怎么投屏到電腦_投屏軟件電腦加手機投屏軟件投屏

優秀的資源工具可以讓你事半功倍!本號文內資源已經手工轉存整理,安全起見,回復 “領取資源” 按提示自助領取。今天分享的是一家公司出品的投屏神器。為避免被舉報這里就不說出軟件名了。它可以在局域網內把手機的屏幕投到電腦上,…

How to upload windows Sysprep Files to VMware vCenter Server Appliance 6.5(vC

vCSA5.5中可以登錄到端口5480中去上傳,vCSA 6.0以后就不支持了。但是可以通過Enable “Pi Shell”來做。 首先確保vCSA的ssh可用: 0. Make sure that SSH in enabled on the VCSA. Home > Administration > System configuration (under Deploymen…

開源短地址_如何在短短5分鐘內完成您的第一個開源貢獻

開源短地址by Roshan Jossey羅珊喬西(Roshan Jossey) 如何在短短5分鐘內完成您的第一個開源貢獻 (How to make your first open source contribution in just 5 minutes) The best way to level up your programming skills it to code more. The second best thing is to rea…

【Qt開發】QT對話框去掉幫助和關閉按鈕 攔截QT關閉窗口的CloseEvent

建了一個對話框,我不想把邊框去掉,只想去掉關閉按鈕, setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::WindowContextHelpButtonHint); 結果那個問號的按鈕去掉了,但是關閉按鈕還在,求助啊 set…

Vivado Design Suite用戶指南之約束的使用第二部分(約束方法論)

Constraints Methodology(約束方法論) 關于約束方法論 設計約束定義了編譯流程必須滿足的要求,以使設計在板上起作用。 并非所有步驟都使用所有約束在編譯流程中。 例如,物理約束僅在實現步驟期間使用(即,由…

eval函數 php_PHP的一句話木馬代碼和函數eval的簡介

大清早的剛從床上爬起來。雨落就跑來找我問我這段代碼是什么意思<?php eval($_POST[pp]);?>看了一下&#xff0c;post接收pp的值&#xff0c;抑制錯誤輸出。呵呵開個玩笑&#xff0c;其實不是這么簡單&#xff0c;這是一段PHP木馬代碼&#xff0c;也就是我們所說的后門…

linux安裝python_Python - 愛豆

Python下載Python最新源碼&#xff0c;二進制文檔&#xff0c;新聞資訊等可以在Python的官網查看到&#xff1a;Python官網&#xff1a;你可以在以下鏈接中下載 Python 的文檔&#xff0c;你可以下載 HTML、PDF 和 PostScript 等格式的文檔。Python文檔下載地址&#xff1a;doc…

如何將您的#100DaysOfCode登錄轉換為視覺體驗

by Joe Warren通過喬沃倫 如何將您的&#xff03;100DaysOfCode登錄轉換為視覺體驗 (How to Transform Your #100DaysOfCode Log Into a Visual Experience) Learning how to code is an unrivaled modern experience. As an aspiring developer, no matter what level you’r…

Python中集合(set)的操作及一些比較常見的用法

Python除了List、Tuple、Dict等常用數據類型外&#xff0c;還有一種數據類型叫做集合&#xff08;set&#xff09;&#xff0c;集合的最大特點是&#xff1a;集合里邊的元素是不可重復的并且集合內的元素還是無序的&#xff0c;所以一般情況下集合常用的兩個場景是&#xff1a;…

php中的圖像下載函數,PHP實現的下載遠程圖片自定義函數分享

/*** PHP下載遠程圖片到本地** param $url string 遠程文件地址* param $filename string 保存后的文件名(為空時則為隨機生成的文件名&#xff0c;否則為原文件名)* param $fileType array 允許的文件類型* param $dirName string 文件保存的路徑(路徑其余部分根據時間系統自動…

Linux 文件的壓縮與解壓

1. tar結尾壓縮命令 [roottest ~]# tar -cvf grub.tar /boot/grub/ 查看壓縮包文件 [roottest ~]# tar -vtf grub.tar 解壓文件 #tar -xvf grub.tar # tar -xvf grub.tar -C 解壓目錄 2. gz結尾壓縮命令 # tar -zcvf grub.tar.gz /boot/grub gz結尾解壓命令 #tar -zxvf gr…