python3(四十)datetime timestamp str


"""時間處理  """
__author__on__ = 'shaozhiqi  2019/9/25'

# !/usr/bin/env python3
# -*- coding: utf-8 -*-
# ------------------------------------------datetime---------------------------------------
from datetime import datetime, timedelta

now = datetime.now()  # 獲取當前datetime
print(now)  # 2019-09-25 14:43:15.124296
print(type(now))  # <class 'datetime.datetime'>

# 如果僅導入import datetime,則必須引用全名datetime.datetime。
# datetime.now()返回當前日期和時間,其類型是datetime。

# 要指定某個日期和時間,我們直接用參數構造一個datetime:
dt = datetime(2019, 4, 19, 12, 20)  # 用指定日期時間創建datetime
print(dt)  # 2019-04-19 12:20:00

# ------------------------------------------------datetime轉換為timestamp------------------------------------------
# 在計算機中,時間實際上是用數字表示的。我們把1970年1月1日 00:00:00 UTC+00:00時區的時刻稱為epoch time,
# 記為0(1970年以前的時間timestamp為負數),當前時間就是相對於epoch time的秒數,稱為timestamp。
# 可見timestamp的值與時區毫無關系,因為timestamp一旦確定,其UTC時間就確定了,轉換到任意時區的時間也是完全確定的,
# 這就是為什么計算機存儲的當前時間是以timestamp表示的,因為全球各地的計算機在任意時刻的timestamp都是完全相同的(假定時間已校准)。
dt = datetime(2015, 4, 19, 12, 20)  # 用指定日期時間創建datetime
print(dt.timestamp())  # 把datetime轉換為timestamp
# 1429417200.0
# 注意Python的timestamp是一個浮點數。如果有小數位,小數位表示毫秒數。
# 某些編程語言(如Java和JavaScript)的timestamp使用整數表示毫秒數,這種情況下只需要把timestamp除以1000就得到Python的浮點表示方法。

# --------------------------------------------------timestamp轉換為datetime----------------------------------------
# 要把timestamp轉換為datetime,使用datetime提供的fromtimestamp()方法:
t = 1429417200.0
print(datetime.fromtimestamp(t))  # 2015-04-19 12:20:00

# 注意到timestamp是一個浮點數,它沒有時區的概念,而datetime是有時區的。上述轉換是在timestamp和本地時間做轉換。
# 本地時間是指當前操作系統設定的時區。例如北京時區是東8區,則本地時間:
#  2015-04-19 12:20:00

# --------------------------------------------------str轉換為datetime-------------------------------------------------
# 很多時候,用戶輸入的日期和時間是字符串,要處理日期和時間,首先必須把str轉換為datetime。
# 轉換方法是通過datetime.strptime()實現,需要一個日期和時間的格式化字符串:

cday = datetime.strptime('2019-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
print(cday)  # 2019-06-01 18:19:59

# ----------------------------------------------------datetime轉換為str------------------------------------------------
# 如果已經有了datetime對象,要把它格式化為字符串顯示給用戶,就需要轉換為str,轉換方法是通過strftime()實現的,同樣需要一個日期和時間的格式化字符串:

now = datetime.now()
print(now.strftime('%a, %b %d %H:%M'))  # Wed, Sep 25 14:56
# ------------------------------------------------datetime加減--------------------------------------------------------
now = datetime.now()
print('now1:', now) # now1: 2019-09-25 18:40:57.979018
now2=now + timedelta(hours=10)
print('now2:', now2) # now2: 2019-09-26 04:40:57.979018
now3=now - timedelta(days=1)
print('now3:', now3) # now3: 2019-09-24 18:40:57.979018
now4=now + timedelta(days=2, hours=12)
print('now4:', now4) # now4: 2019-09-28 06:40:57.979018

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM