Python基本數據類型之時間

1.什麼是時間數據類型

Python中表示時間類型的數據結構爲時間數據類型;html

2.time模塊

import time
# 獲取當前時間的時間戳
print(time.time())   #輸出:1548742426.1698806

# 返回當前時間的元組
t = time.localtime()
print(t)
#輸出:time.struct_time(tm_year=2019, tm_mon=1, tm_mday=29, tm_hour=14, tm_min=14, tm_sec=17, tm_wday=1, tm_yday=29, tm_isdst=0)


# 將當前時間元組轉變爲字符串
print(time.asctime(time.localtime()))  #輸出:Tue Jan 29 14:15:51 2019

# # 格式化字符串
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))    #輸出:2019-01-29 14:16:08
# # 將字符串轉爲時間元組

print(time.strptime('2018-11-27 08:08:08', '%Y-%m-%d %H:%M:%S'))  
#輸出:time.struct_time(tm_year=2018, tm_mon=11, tm_mday=27, tm_hour=8, tm_min=8, tm_sec=8, tm_wday=1, tm_yday=331, tm_isdst=-1)

# sleep方法, 會佔用cpu時間片
print(time.sleep(5))   #5秒後輸出:None

# 打印日曆
import calendar
print(calendar.month(2019, 1))   #輸出:2019年1月的日曆

時間戳:就是從0時區1970年1月1日0時0分0秒,到所給定日期時間的秒數(浮點型);python

時間戳獲取:使用import導入time模塊,調用time模塊的time方法,獲得的時間戳若是不要小數點後面的就是秒,取後面三位小數就是毫秒,再下去三位就是微秒,通常取到毫秒就能夠了;數據結構

localtime方法:返回當前時間的元組(包括年月日時分秒等);ui

asctime方法:將當前時間元組轉變爲字符串(歐美國家的時間格式);線程

strftime方法:格式化字符串;code

strptime方法:和strftime方法相反,用來將字符串轉爲時間元組;htm

sleep方法:會佔用cpu時間片(也就是讓整個線程暫停一些時間);對象

打印日曆:import導入calendar模塊,而後調用month方法;ip

3.datetime模塊

python中的datetime模塊提供了操做日期和時間功能,該模塊提供的五種核心對象分別是:datetime(時間日期類型), date(日期類型), time(時間類 型), tzinfo(時區類型), timedelta(時間差類型);ci

(1) datetime類型

from datetime import datetime
# 1: 構建一個指定日期和時間的datetime對象
today = datetime(year=2019,month=1,day=29,hour=14,minute=22,second=54)
print(today)  #輸出:2019-01-29 14:22:54

#獲取當前日期時間,輸出類型爲datetime
now = datetime.now()
print(now,type(now))  #輸出:2019-01-29 14:23:35.408583 <class 'datetime.datetime'>

d_now = datetime.now()
# datetime類型轉字符串
d_str = d_now.strftime('%Y-%m-%d %H:%M:%S')
print(d_str,type(d_str))   #輸出:2019-01-29 14:26:12 <class 'str'>
# 字符串轉datetime類型
d_type = datetime.strptime(d_str,'%Y-%m-%d %H:%M:%S')
print(d_type,type(d_type))  #輸出:2019-01-29 14:26:12 <class 'datetime.datetime'>

# 計算時間戳
timestamp = d_type.timestamp()
print(timestamp)  #輸出:1548743501.0

# 計算時間戳
timestamp = d_type.timestamp()
print(timestamp)      #輸出:1548743935.0

# 經過時間戳獲取datetime對象   
d_type = datetime.fromtimestamp(1543408827)
print(d_type, type(d_type))  #輸出:2018-11-28 20:40:27 <class 'datetime.datetime'>
  • datetime類型轉字符串用strftime方法,字符串轉datetime類型用strptime方法;
  • timestamp方法:計算時間戳;
  • fromtimestamp方法:經過時間戳獲取datetime對象;

(2) date類型

from datetime import date
data_today = date(year=2018, month=11, day=29)
print(data_today)  #輸出:2018-11-29
  • 導入date模塊,實例化日期;

(3) time類型

from datetime import time
now_time = time(hour=8, minute=30, second=10)
print(now_time, type(now_time))  #輸出:20:30:10 <class 'datetime.time'>
  • 導入time類型,實例化時間;

(4) timedelta類型

from datetime import datetime, timedelta
# 時間間隔能夠經過相減獲得
now = datetime.now()
before_datatime = datetime(year=2018, month=11, day=20, hour=8, minute=20, second=20)
delta = now - before_datatime
print(delta, type(delta))   #輸出:70 days, 6:22:37.340041 <class 'datetime.timedelta'>

# 能夠初始化時間間隔
delta_days = timedelta(days=7)
print(delta_days, type(delta_days))  #輸出:7 days, 0:00:00 <class 'datetime.timedelta'>

# 能夠經過時間間隔獲得未來的時間 
future_datetime = now + delta_days
print(future_datetime)    #輸出:2019-02-05 14:43:54.582315
  • timedelta對象表示一個時間段,timedelta對象能夠經過手動實例化獲得,也能夠經過相減獲得;

(5)tzinfo類型

from datetime import datetime
import pytz
utc_tz = pytz.timezone('UTC')
print(pytz.country_timezones('cn'))  # 顯示中國時區的城市   #輸出:['Asia/Shanghai', 'Asia/Urumqi']
print(pytz.country_timezones('us'))  # 顯示美國時區的城市
# #輸出:['America/New_York', 'America/Detroit', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Indiana/Indianapolis', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Vevay', 'America/Chicago', 'America/Indiana/Tell_City', 'America/Indiana/Knox', 'America/Menominee', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/North_Dakota/Beulah', 'America/Denver', 'America/Boise', 'America/Phoenix', 'America/Los_Angeles', 'America/Anchorage', 'America/Juneau', 'America/Sitka', 'America/Metlakatla', 'America/Yakutat', 'America/Nome', 'America/Adak', 'Pacific/Honolulu']

# # 獲取時區
china_tz = pytz.timezone('Asia/Shanghai')
america_tz = pytz.timezone('America/New_York')
# # 獲取城市本地時間
china_local_time = datetime.now(china_tz) # 東八區
america_local_time = datetime.now(america_tz) # 西五區
print(china_local_time)   #輸出:2019-01-29 14:51:51.252579+08:00
print(america_local_time)  #輸出:2019-01-29 14:51:51.252579+08:00
  • 安裝pytz包:進入項目,執行pip install pytz命令;
  • 獲取時區:pytz.timezone(地區名);
  • 獲取城市本地時間:datetime.now(時區名);

參考:https://www.9xkd.com/user/pla...

相關文章
相關標籤/搜索