簡體   English   中英

在Core Data中存儲時間間隔的正確方法是什么?

[英]What's the correct way to store a time interval in Core Data?

我需要在應用程序的數據庫中存儲一個時間間隔,該時間間隔偶爾會添加到NSDate 問題是,我不知道要為它選擇什么數據類型。 有些人建議存儲NSTimeInterval ,但是當用戶的時區發生變化時會導致計算錯誤嗎? 也許最好存儲NSDateComponents (作為“可轉換”數據類型)還是有另一種更好的方法來做到這一點?

無論當前日期,時區或日歷是什么,一分鍾為60秒,一小時為3600秒。 如果要將持續時間存儲為“24小時”,則可以將其存儲為值為24 * 3600的時間間隔。

所有較大的單位,從白天開始必須根據當前日期,時區和日歷進行解釋。 在夏令時區域,“一天”的持續時間可以是23天,24天或25小時。 特別是,“24小時”和“1天”具有不同的含義。 公歷中的持續時間“1個月”可以是28到31天,“1年”可以是365或366天。 其他日歷可能有其他“特殊性”。

因此,涉及“日”或更大單位的所有持續時間必須存儲為日期組件。 轉換為NSDateComponents是一種可能性,或者您可以向Core Data實體添加多個屬性“durationDays”,“durationMonths”等。 這具有以下優點:可以在獲取請求或排序描述符中引用這些值。

暫無
暫無

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

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