所以,我注意到DateTime.MinValue默認為01-01-0001 (dd-MM-yyyy),例如,假設我們有一個博物館資料庫/類物件,您如何存盤來自公元前 10,000 年的物件或來自今天之前數百萬年的恐龍骨骼?
它可以是一個有符號的值嗎?比如,年份“-10000”代表BC?或者我們需要依賴字串并且無法本地處理第 1 年之前的日期?
我檢查了這個要求零年的問題,但它沒有任何有用的見解,除了顯然不是每個人都知道沒有零年這樣的東西。如何使用python在0年創建一個日期時間物件
uj5u.com熱心網友回復:
不,DateTime在 1CE 之前不處理任何事情。
我的Noda Time專案確實支持 BCE 日期,但仍然限于它可以處理的最早大約 9998 BCE。
一旦您談到史前時代,無論如何,您可能有一組與正常日期/時間型別不同的用例 - 因此僅擴展現有型別的范圍可能對您沒有多大幫助。(例如,古代歷史經常處理相對日期:“我知道 X 之戰發生在 Y 國王統治的 3 年之后,但我不知道它們中的任何一個發生的確切時間。”)我建議你想想您的實際用例是什么,以及您需要對日期/時間資訊做什么。然后,您可以查看現有庫是否滿足您的需求,或者您是否需要撰寫自己的抽象。
uj5u.com熱心網友回復:
在挖掘之后,我發現除了創建自己的型別之外,對于這個特定的日期用例沒有簡單的本地解決方案,所以我想提出我的解決方案,以防它對任何人有用。只需添加一個帶有符號的列,一個 - 和一個 (或者 0 和 1 我猜是布爾型別)。帶 的日期是AC,帶-的日期是BC。在您的代碼或其他方面,您將不得不處理該標志。它很簡單,不需要額外的庫或技術。
由于日期沒有零,符號不應該造成干擾,只要注意負日期在您的邏輯中以相反的順序移動就可以解決任何問題。然而,該解決方案僅適用于 9999 年之前的日期,因此為了能夠處理更遠的日期,必須對更復雜的系統進行編程。就像在單獨的列中處理日期的每個部分一樣,它可以涵蓋與 int 或 double 可以處理數字一樣多的年份。
但是,我確實認為從 3000 年到 9999 年的正日期幾乎不會被使用,更不用說未來數百萬年了。但也許它會用于科幻宇宙(如 40K、SW 或 ST)的粉絲專案資料庫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321370.html
上一篇:Spring中的@DateTimeFormat給出錯誤的日期
下一篇:DateTime.UtcNow.ToString("yyyy/MM/ddHH:mm:ss")為不同的用戶提供不同的格式
