簡體   English   中英

非標准儒略日時間戳

[英]Non-standard Julian day time stamp

我有一個非標准格式的時間戳,它是多個元素的串聯。 我想至少將字符串的最后一部分轉換為小時/分鍾/秒/十進制秒,這樣我就可以計算它們之間的時間間隔(通常為 2-5 秒)。 我看過這個鏈接,但它假設一個“正確的”朱利安時間。 如何將儒略日期轉換為標准日期?

我的時間戳看起來像這樣

1380643373

設置為 ddd hh mm ss.s 這個時間戳代表第 138 天,06:43:37.3

有沒有一種日期時間方法來處理這個問題,還是我需要去掉各個部分(hh、mm、ss.s)並以某種方式連接它們? 因為我只對秒感興趣,如果我可以提取它們,如果第二個時間戳小於第一個時間戳,我可以通過添加 60 來處理它 - 即事件通過分鍾更改邊界。

如果你只對幾秒鍾感興趣,你可以這樣做:

timestamp = 1380643373
seconds = (timestamp % 1000) / 10 # Gives 37.3

timestamp % 1000為您提供timestamp的最后三位。 然后你把它除以 10 得到秒。

如果它是一個字符串,您可以通過切片來獲取最后三個字符。

timestamp = "1380643373"
seconds = int(timestamp[-3:]) / 10 # Gives 37.3

重復使用divmod() function 將時間戳轉換為日期時間非常容易:

import datetime

base_date = datetime.datetime(2000, 1, 1, 0, 0, 0) # Midnight on Jan 1 2000


timestamp = 1380643373

timestamp, seconds = divmod(timestamp, 1000) # Gives 1380643, 373
seconds = seconds / 10 # Gives 37.3

timestamp, minutes = divmod(timestamp, 100) # Gives 13806, 43

days, hours = divmod(timestamp, 100) # Gives 138, 6


tdelta = datetime.timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds) # Gives datetime.timedelta(days=138, seconds=24217, microseconds=300000)
new_date = base_date + tdelta

暫無
暫無

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

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