1.簡介
在編寫**時,往往涉及時間、日期、時間戳的相互轉換。
python datetime 新增時區
import datetime
from dateutil import tz
tz_sh = tz.gettz('asia/shanghai')
print datetime.datetime.now(tz=tz_sh)
2.示例
# 引入模組
import time, datetime
from sqlalchemy_utils.types.arrow import arrow
2.1 str型別的日期轉換為時間戳
# 字元型別的時 tss1 = '2013-10-10 23:40:00'
# 轉為時間陣列timearray = time.strptime(tss1, "%y-%m-%d %h:%m:%s")
print timearray
# timearray可以呼叫tm_year等
print timearray.tm_year # 2013
# 轉為時間戳
timestamp = int(time.mktime(timearray))
print timestamp # 1381419600
# 結果如下
time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
2013
1381419600
2.2 更改str型別日期的顯示格式
tss2 = "2013-10-10 23:40:00"
# 轉為陣列
timearray = time.strptime(tss2, "%y-%m-%d %h:%m:%s")
# 轉為其它顯示格式
otherstyletime = time.strftime("%y/%m/%d %h:%m:%s", timearray)
print otherstyletime # 2013/10/10 23:40:00
tss3 = "2013/10/10 23:40:00"
timearray = time.strptime(tss3, "%y/%m/%d %h:%m:%s")
otherstyletime = time.strftime("%y-%m-%d %h:%m:%s", timearray)
print otherstyletime # 2013-10-10 23:40:00
2.3 時間戳轉換為指定格式的日期
# 使用time
timestamp = 1381419600
timearray = time.localtime(timestamp)
otherstyletime = time.strftime("%y--%m--%d %h:%m:%s", timearray)
print(otherstyletime) # 2013--10--10 23:40:00
# 使用datetime
timestamp = 1381419600
datearray = datetime.datetime.fromtimestamp(timestamp)
otherstyletime = datearray.strftime("%y--%m--%d %h:%m:%s")
print(otherstyletime) # 2013--10--10 23:40:00
# 使用datetime,指定utc時間,相差8小時
timestamp = 1381419600
datearray = datetime.datetime.utcfromtimestamp(timestamp)
otherstyletime = datearray.strftime("%y--%m--%d %h:%m:%s")
print(otherstyletime) # 2013--10--10 15:40:00
2.4 獲取當前時間並且用指定格式顯示
# time獲取當前時間戳
now = int(time.time()) # 1533952277
timearray = time.localtime(now)
print timearray
otherstyletime = time.strftime("%y--%m--%d %h:%m:%s", timearray)
print otherstyletime
# 結果如下
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=11, tm_hour=9, tm_min=51, tm_sec=17,
tm_wday=5, tm_yday=223, tm_isdst=0)
2018--08--11 09:51:17
# datetime獲取當前時間,陣列格式
now = datetime.datetime.now()
print now
otherstyletime = now.strftime("%y--%m--%d %h:%m:%s")
print otherstyletime
# 結果如下:
2018-08-11 09:51:17.362986
2018--08--11 09:51:17
2.5 使用arrow轉換時間
logging.warning(arrow.get(1593515266000 / 1000).format("yyyy-mm-dd hh:mm:ss"))
# 相差8小時
logging.warning(arrow.get(1593515266000 / 1000).to("local").format("yyyy-mm-dd hh:mm:ss"))
# 結果如下:
warning:root:2020-06-30 11:07:46
warning:root:2020-06-30 19:07:46
時間戳轉換時間
遇到兩個問題,第一是當前時間轉化為時間戳,第二是獲取的當前時間和系統的時間相差8個小時 一,轉化的方法為 nsstring timesp nsstring stringwithformat d long localedate timeintervalsince1970 nslog timesp ti...
時間戳轉換日期 日期轉換時間戳 時間戳轉換星期
時間戳轉換日期 string date orderinfo.getchangetime replace null dateformat sdf new dateformat mm dd string monthdate sdf.format new date long.parselong date ...
Python 中時間與時間戳轉換
首先,時間戳是指格林威治時間1970年01月01日00時00分00秒 北京時間1970年01月01日08時00分00秒 起至現在的總毫秒數。通俗的講,時間戳是乙份能夠表示乙份資料在乙個特定時間點已經存在的完整的可驗證的資料。import time t time.time print t 原始時間資料...