網站首頁 編程語言 正文
python datetime 和時間戳互轉
import datetime, time
now = datetime.datetime.now()
now_time = int(time.mktime(now.timetuple())) ? #datetime 轉時間戳
now = datetime.datetime.fromtimestamp(now_time) ?#時間戳轉datetime
# datetime 當天8點
datetime(now.year, now.month, now.day, 8)
now = 0點-8點 ?int(now-now % 86400) + time.timezone是前一天的零點
Python time和datetime時間戳和時間字符串相互轉換
Python time和datetime時間戳和時間字符串相互轉換
時間戳是指格林威治時間1970年01月01日00時00分00秒開始計算所經過的秒數,是一個浮點數。
time和datetime都是Python中的內置模塊(不需要安裝,直接可以使用),都可以對時間進行獲取,對時間格式進行轉換,如時間戳和時間字符串的相互轉換。
現在我們就使用這兩個模塊來對時間格式進行轉換。
一、time獲取當前時間
import time
print(time.time())
print(time.localtime())
print(time.localtime(time.time()))
運行結果:
1559120608.5015295
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=3, tm_sec=28, tm_wday=2, tm_yday=149, tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=3, tm_sec=28, tm_wday=2, tm_yday=149, tm_isdst=0)
可以通過time.time()獲取到當前的時間,默認是一個時間戳浮點數。
通過time.localtime()或time.localtime(time.time())都是獲取到當前時間的struct_time,里面分別對應了當前時間的年、月、日、時、分、秒、一周的第幾天(周一是0,0-6)、一年的第幾天(從1開始,1-366)、夏時令(是夏時令1,不是0,不知道-1)。
二、time將時間戳轉換成時間字符串
# 時間戳轉換成時間字符串
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print(time_str)
運行結果:
2019-05-29 17:08:35
三、time將時間字符串轉換成時間戳
print(time.strptime(time_str, '%Y-%m-%d %H:%M:%S'))
# 時間字符串轉換成時間戳
time_stamp = time.mktime(time.strptime(time_str, '%Y-%m-%d %H:%M:%S'))
print(time_stamp)
運行結果:
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=8, tm_sec=35, tm_wday=2, tm_yday=149, tm_isdst=-1)
1559120915.0
可以看到,不管是將時間戳轉換成時間字符串,還是將時間字符串轉換成時間戳,time模塊都是通過struct_time來過渡的,也就是說,都需要先轉換成struct_time,再用struct_time轉換成想要的結果。
四、datetime獲取當前時間
from datetime import datetime
print(datetime.now())
print(datetime.now().timetuple())
運行結果:
2019-05-29 17:22:37.343784
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=22, tm_sec=37, tm_wday=2, tm_yday=149, tm_isdst=-1)
可以通過datetime.now()獲取到當前的時間,默認是一個datetime時間對象,樣式是一個時間字符串的樣式。
注意:導包時導入的是datetime包下的datetime模塊。導包方式不同,使用時也不同。
通過datetime對象的timetuple()方法可以獲取到時間的struct_time。
五、datetime將datetime對象轉換成時間字符串和時間戳
# datetime對象轉換成時間字符串
datetime_str = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')
print(datetime_str)
# datetime對象轉換成時間戳
datetime_stamp = datetime.timestamp(datetime.now())
print(datetime_stamp)
運行結果:
2019-05-29 17:22:37
1559121757.343784
六、datetime將時間字符串轉換成時間戳
# 時間字符串轉datetime對象,再轉時間戳
datetime_stamp2 = datetime.timestamp(datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S'))
print(datetime_stamp2)
運行結果:
1559121757.0
七、datetime將時間戳轉換成時間字符串
# 時間戳轉datetime對象,再轉時間字符串
datetime_str2 = datetime.strftime(datetime.fromtimestamp(datetime_stamp2), '%Y-%m-%d %H:%M:%S')
print(datetime_str2)
運行結果:
2019-05-29 17:22:37
在使用datetime進行時間戳和時間字符串之間的轉換時,都是先轉換成datetime對象,然后再做進一步的轉轉。
在實際工作中,我們也可以同時使用time和datetime兩個模塊,它們是可以混合使用的。
原文鏈接:https://blog.csdn.net/A_Prophet/article/details/83011928
相關推薦
- 2022-07-14 C++簡明分析講解引用與函數提高及重載_C 語言
- 2021-12-15 liunx安裝Jenkins超詳細全過程_Linux
- 2022-08-30 Kotlin object的用法和內存泄漏研究
- 2022-07-10 詳解HashSet并發(fā)修改異常
- 2022-06-19 rsa詳解及例題及python算法_python
- 2024-01-14 Spring boot 注解@Async不生效 無效 不起作用
- 2023-07-18 nacos解決shared-configs下的共享配置文件無法實時更新
- 2022-10-18 pandas重復行刪除操作df.drop_duplicates和df.duplicated的區(qū)別_p
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支