簡體   English   中英

如何在Python中找到未來時間的紀元時間

[英]How to find epoch time of future time in Python

我目前正在用 Python 編寫鬧鍾,但是我遇到了一些技術困難。 用戶可以選擇讓鬧鍾重復(在給定的日子里)或不重復。 然后他們提供他們希望警報觸發的分鍾和小時。

為了讓我的警報系統正常工作,我需要知道警報應該觸發的時間。

如果我想設置鬧鍾(例如 19:30,時間將始終輸入為 24 小時),我需要鬧鍾能夠找出下一次是 19:30 的紀元時間,因為如果我在 19:30 之前設置鬧鍾,它可能是在同一天,如果我在 19:30 之后設置鬧鍾,它可能是第二天。

因此,這意味着我不能簡單地執行time.localtime() ,然后獲取生成的 struct_time 對象並將小時和分鍾交換為 19 和 30 的整數(分別位於對象命名的索引 3 和 4元組),因為我還必須正確分配年中的月、日和日的值才能獲得有效的 struct_time 對象,盡管可能,當我覺得有可能時,需要進行大量操作可能是一種更合理的方法。

任何幫助將非常感激

您可以簡單地對結果使用timestamp方法。 這將返回datetime時間實例的紀元時間。 這幾乎適用於任何情況,特別是因為它是一個簡單的鬧鍾,但請注意文檔中的這一警告。

假設朴素的日期時間實例表示本地時間,並且此方法依賴於平台 C mktime() 函數來執行轉換。 由於 datetime 在許多平台上支持比 mktime() 更廣泛的值,因此此方法可能會在過去或將來很長時間內引發 OverflowError。

根據您的程序架構,您還可以考慮使用兩次之間的秒數,這可以使用簡單的減法來獲得timedeltatotal_seconds函數:

import time
import datetime

start = datetime.datetime.now()

time.sleep(2)

end = datetime.datetime.now()

# print total seconds
print((end - start).total_seconds())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM