odoo開發筆記 -- 當前時間&時間運算相關


當前日期/時間:

from datetime import datetime, timedelta

now_time = datetime.now()
today_date_format = now_time.strftime('%Y-%m-%d 00:00:00')
today_time_format = now_time.strftime('%Y-%m-%d')

時間格式轉換:

 

時間運算:(加減8個小時)

return_time = (datetime.now() + timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S%f')

示例1:輸入一段時間字符,跟當前時間,比較大小:

# -*- coding: utf-8 -*-
import datetime
import time

def time_compare(timestr):
    # 將日期字符串轉為時間再比較,time,datetime,str
    # timestr 是傳入的時間字符串,格式如:2019-11-25 00:00:00
    # 獲取當前時間日期
    now_time_str = datetime.datetime.now().strftime('%Y-%m-%d')
    print(now_time_str)
    # mktime參數為struc_time,將日期轉化為秒,
    e_time = time.mktime(time.strptime(now_time_str, "%Y-%m-%d"))
    print(e_time)
    try:
        s_time = time.mktime(time.strptime(timestr, '%Y-%m-%d %H:%M:%S'))
        print(s_time)
        # 日期轉化為int比較
        diff = int(e_time) - int(s_time)
        print(diff)
        if diff > 0:
            # 當前時間 大於 輸入時間
            return True
        else:
            # 當前時間 小於 輸入時間
            return False
    except Exception as e:
        print(e)
        return False

示例2:輸入一段時間字符,加減某段時間(幾天),計算結果,跟當前時間比較:

def time_compare_operation(time_str, delay_days):
    # 傳入日期字符串+時間間隔(delay_days整數-單位/天) 跟當前時間 比較大小
    # 等效 傳入日期字符串 和 當前時間-時間間隔(整數-單位:天) 比較大小  ---因為直接用當前時間做計算方便
    # time_str格式:2019-11-25 00:00:00
    # 獲取當前時間日期 - 預警時間
    result_time_str = (datetime.datetime.now() - datetime.timedelta(days=delay_days)).strftime("%Y-%m-%d %H:%M:%S")
    print(result_time_str)
    result_time = time.mktime(time.strptime(result_time_str, "%Y-%m-%d"))

    try:
        s_time = time.mktime(time.strptime(time_str, '%Y-%m-%d %H:%M:%S'))
        print(s_time)
        # 日期轉化為int比較
        diff = int(result_time) - int(s_time)
        print(diff)
        if diff > 0:
            # 當前時間 大於 傳入日期字符串+時間間隔(整數-單位:天)
            return 'greater'
        elif diff == 0:
            # 當前時間 等於 傳入日期字符串+時間間隔(整數-單位:天)
            return 'equal'
        else:
            # 當前時間 小於 傳入日期字符串+時間間隔(整數-單位:天)
            return 'less'
    except Exception as e:
        print(e)
        return False

 


免責聲明!

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



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