Python中基礎的時間操作
時間日期格式化符號
- %Y:年,4位數
- %y:年,2位數
- %m:月,2位數(01-12)
- %d:天,2位數(01-31)
- %H:24小時制小時(00-23)
- %M:分鐘數(00-59)
- %S:秒數(00-59)
- %f:毫秒數
與java中常用的格式化方式(yyyy-MM-dd HH:mm:ss)有區別,特別是大寫“M”和小寫“m”。倒是跟MySQL中的格式化差不多。
時間的處理
python的時間處理,可使用內建的time模組,也可以使用datetime.datetime模組。
- 使用time模組,主要是對time.struct_time的例項進行操作
- 使用datetime.datetime模組,主要是對datetime.datetime的例項進行操作
獲取當前時間
使用time
import time
# 直接使用localtime()得到的是格林威治時間,比北京時間晚8小時
# now = time.localtime()
# 先用time.time()得到時間戳,再使用localtime(),取得的時間是本地時間
now = time.localtime(time.time())
# 直接列印的話,是一個time.struct_time的例項
print(now)
# 格式化輸出
print(time.strftime('%Y-%m-%d %H:%M:%S',now))
使用datetime
from datetime import datetime as dt
# 直接獲取的就已經是北京時間
now = dt.now()
# 直接列印,已經很像一個格式化時間了,但是帶有毫秒數
print(now)
# 格式化輸出
print(now.strftime('%Y-%m-%d %H:%M:%S'))
時間戳操作
使用time
# 獲取當前時間的時間戳
timestamp = time.time()
print('當前時間的時間戳:%s'%timestamp)
# 獲取某時間的時間戳
one_time = time.localtime()
tiamstamp = time.mktime(one_time)
# 時間戳轉時間
timestamp = 1607703000
t = time.localtime(timestamp)
print(time.strftime('%Y-%m-%d %H:%M:%S', t))
使用datetime
# 先取得時間,後獲取時間戳
now = dt.now()
timestamp = dt.timestamp(now)
# 時間戳轉時間
timestamp = 1607703000
t = dt.fromtimestamp(timestamp)
print(t)
取得年,月,日,時,分,秒
使用time
# 必須傳參,不然取得的不是北京時間
now = time.localtime(time.time())
print('%s年'%now.tm_year)
print('%s月'%now.tm_mon)
print('%s日'%now.tm_mday)
print('%s時'%now.tm_hour)
print('%s分'%now.tm_min)
print('%s秒'%now.tm_sec)
使用datetime
now = dt.now()
print('%s年'%now.year)
print('%s月'%now.month)
print('%s日'%now.day)
print('%s時'%now.hour)
print('%s分'%now.minute)
print('%s秒'%now.second)
自定義時間
使用time
貌似不太好定義
使用datetime
# 自定義2020年1月2日 3點4分5秒
c_time = dt(2020,1,2,3,4,5)
print(c_time)
# 自定義2020年1月2日,預設0點0分0秒
# 至少要有年月日三個引數
# 年:1~9999
# 月:1~12
# 日:1~28[29,30,31],注意閏月和大小月
c_time = dt(2020,1,2)
print(c_time)
字串與時間互轉
使用time
str_time = '2020-12-12 12:12:12'
# 字串轉時間
t = time.strptime(str_time,'%Y-%m-%d %H:%M:%S')
print(t)
# 時間轉字串
str_time_2 = time.strftime('%Y-%m-%d %H:%M:%S', t)
print(str_time_2)
非官方解釋:
- strptime: 貌似是str parse time的縮寫,即:將字串解析成時間,返回一個時間物件
- strftime: 貌似是str from time的縮寫,即:從時間中取得字串,返回一個字串
使用datetime
str_time = '2020-12-12 12:12:12'
# 字串轉時間,使用的方法名稱和time相同,但是返回的時間型別是datetime.datetime
t = dt.strptime(str_time,'%Y-%m-%d %H:%M:%S')
print(t)
# 時間轉字串的方法名稱與time相同,但是用法有區別
str_time_2 = t.strftime('%Y-%m-%d %H:%M:%S')
print(str_time_2)
時間的加減操作
使用time
貌似不太好操作
使用datetime
datetime.timedelta用於表示時間間隔
from datetime import datetime as dt
from datetime import timedelta as
- “日期時間”與“時間間隔”進行加減操作,得到一個新的“日期時間”
now = dt.now()
# 定義一個時間間隔:365天
one_year = td(days=365)
# 把這個時間間隔直接加到當前時間上
next_year = now + one_year
print(next_year)
# 定義一個間隔:1天23小時4分10秒
time_diff = td(days=1, hours=23,minutes=4,seconds=10)
next_time = now + time_diff
print(next_time)
next_time = now - time_diff
print(next_time)
- “日期時間”與“日期時間”相減,得到一個“時間間隔”
now = dt.now()
next_time = dt(2022,1,1)
time_diff = next_time - now
print(time_diff)
# 可得出兩個時間的間隔天數
print(time_diff.days)
# 可得出兩個時間的間隔秒數(不包括整天,就是湊不夠一天的時間的秒數)
print(time_diff.seconds)
# 可得出兩個時間的間隔總秒數,貌似沒有直接獲取小時,分鐘的方法,得自己計算:(
print(time_diff.total_seconds())
- “時間間隔”與“時間間隔”進行加減操作,得到一個新的“時間間隔”
time_diff_a = td(days=1, hours=23,minutes=4,seconds=10)
time_diff_b = td(days=2, minutes=55,seconds=50)
# 相加
time_diff_c = time_diff_a + time_diff_b
print(time_diff_c)
print(type(time_diff_c))
# 相減
time_diff_d = time_diff_a - time_diff_b
print(time_diff_d)
- “日期時間”與“日期時間”相加,必須報錯:)
小結
- datetime比time好用。
- python裡時間日期相關類,既有time.struct_time,又有datetime.datetime,有點不習慣。
相關文章
- Java日期時間操作基礎——包含JDK1.8時間操作新特性JavaJDK
- 【Python基礎】日期和時間Python
- python基礎中的基礎Python
- python基礎操作Python
- Python中操作時間之strptime()方法的使用Python
- [Python基礎]字串操作Python字串
- python基礎(三)——操作列表Python
- Python基礎——檔案操作Python
- sql server中對時間日期的操作SQLServer
- python 檔案操作的基礎總結Python
- 檔案IO中基礎操作
- 程式碼模板:python-基礎-4(時間戳轉換)Python時間戳
- Flink基礎:時間和水印
- 0基礎學Python難嗎?學習Python需要多長時間?Python
- Python基礎之:Python中的類Python
- Python基礎之:Python中的IOPython
- delphi中的時間操作技術(1) (轉)
- delphi中的時間操作技術(2) (轉)
- Python時間模組常用操作總結Python
- (Python基礎教程之七)Python字串操作Python字串
- 零基礎學Python-尹會生-極客時間Python
- python基礎操作——正規表示式Python
- Python基礎——while、字串、列表及操作PythonWhile字串
- 【重溫基礎】7.時間物件物件
- Go基礎-時間和日期函式Go函式
- 『無為則無心』Python基礎 — 41、Python中檔案的讀寫操作(一)Python
- 『無為則無心』Python基礎 — 42、Python中檔案的讀寫操作(二)Python
- 零基礎學習Python半年的時間,能否實現高薪就業?Python高薪就業
- Python基礎入門(9)- Python檔案操作Python
- Python 基礎筆記——變數的操作方法Python筆記變數
- mysql時間操作(時間差和時間戳和時間字串的互轉)MySql時間戳字串
- Oracle表空間操作詳解-入門基礎Oracle
- 時間相關的操作
- 【基礎】演算法的時間複雜度分析演算法時間複雜度
- 高效管理 Elasticsearch 中基於時間的索引Elasticsearch索引
- Python基礎之:Python中的內部物件Python物件
- Python基礎之:Python中的流程控制Python
- java時間操作Java