我正在項目中使用核心數據。數據庫是sqlite,並有用於存儲具有數據類型「時間戳」的「生日」的列。計算核心數據項目iOS中的時間戳
現在,我想在其中插入一些記錄,並將日期設置爲「1809-06-17」之類的人類可讀格式。
如何將此日期轉換爲時間戳,以便從數據庫中獲取此日期。
我使用python腳本嘗試了一些轉換,但得到了不同的結果。
有沒有簡單的方法來做到這一點?請幫幫我。
我正在項目中使用核心數據。數據庫是sqlite,並有用於存儲具有數據類型「時間戳」的「生日」的列。計算核心數據項目iOS中的時間戳
現在,我想在其中插入一些記錄,並將日期設置爲「1809-06-17」之類的人類可讀格式。
如何將此日期轉換爲時間戳,以便從數據庫中獲取此日期。
我使用python腳本嘗試了一些轉換,但得到了不同的結果。
有沒有簡單的方法來做到這一點?請幫幫我。
您可以將日期存儲爲TEXT並且不必擔心轉換爲時間戳和從時間戳轉換。
要時間戳轉換成NSDate的使用:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeStamp];
NSLog(@"%@", date);
字符串的NSDate到時間戳:
NSDate *date = [NSDate dateWithString:stringWithDate];
NSTimeInterval timeStamp = [date timeIntervalSince1970];
SQLite的犯規有日期數據類型,它只是將其存儲在一個INT(UNIX時間) ,REAL(儒略日數字)或TEXT(ISO8601字符串),具體取決於您選擇的內容。
因此,您可以使用上述方法將日期格式存儲爲TEXT列的已有格式(「1809-06-17」)或存儲爲INT列中的時間戳以進行雙向轉換。
SQLite的日期和時間功能:SQLite date and time SQLite的DATATYPES:SQLite datatypes doc SQLite的網站官方公報和文件:SQLite Home
希望你能解決你的問題
感謝您的回覆。但我需要將「1809-06-17」轉換爲時間戳並將其存儲到數據庫中。我已經嘗試了一種解決方案,可以在1950年左右給出正確的值。解決方案:從datetime導入時間 導入日期時間 ref = time.mktime(datetime(2001,1,1,0,0,0).timetuple()) now = time.time() - ref –
最後我得到了我所需要的解決方案。
NSDateFormatter *df = [[NSDateFormatter alloc]init]; [df setDateFormat:@"yyyy-MM-dd"]; NSDate * past = [df dateFromString:@"1971-04-06"]; NSTimeInterval oldTime = [past timeIntervalSinceDate:[df dateFromString:@"2001-01-01"]]; NSString * unixTime = [[NSString alloc] initWithFormat:@"%0.0f", oldTime]; NSLog(@"unixTime = %@",unixTime);
要生成該格式的日期以供將來存儲,您需要查看'NSDateFormatter'。這將允許您創建任意日期格式,然後您可以使用它來隱藏任何日期。 我假設您正在尋找稍後獲取時間戳,然後將它們添加到上述格式的CoreData對象中。 – EricLeaf