2009-11-10 69 views
3

我從sqlite中導出日期值並將其放入電子郵件中。日期顯示是這樣的 279498721.322872sqlite將日期寫入電子郵件

我在Iphone App中使用Objective C。有沒有人知道如何使這個出口作爲一個正常的日期,無論它是所有的數字像 2009-02-10或任何清晰的?

+0

你使用什麼語言?我知道在C#中,sqlite驅動程序自動處理這類事情。 – FrustratedWithFormsDesigner 2009-11-10 01:09:19

+0

我只是想添加信息,目標C,iPhone應用程序.... thx爲要求 – 2009-11-10 01:15:46

回答

1

感謝您的回覆。答案來自我的Guru Alex Cone。他告訴我,使用以下命令:

NSTimeInterval tempInterval = (NSTimeInterval)sqlite3_column_double(statement, 4); 

tempInterval變量可以被加載到該NSDate方法。

1
echo date("Y-m-d",time(279498721.322872)); 
+0

我希望我可以使用這個:) – 2009-11-10 01:21:15

2

好吧,如果你把號碼279498721.322872,把它扔進使用+dateWithTimeIntervalSinceReferenceDate一個NSDate對象,你(在MDT時區位置):2009-11-09 15:32:01 -0700,這是不到3小時前。如果這是您期待的時間,那麼格式化就像使用NSDateFormatter一樣簡單。

但是,需要注意的是,sqlite(默認情況下)將日期存儲爲文本表示(除非您在sql語句中指定的內容不同)。所以這裏真正的問題是「你從哪裏得到這個數字?」

+0

戴夫,謝謝,迄今... NSString * tempString = [NSString stringWithUTF8String :(char *)sqlite3_column_text(statement,1)]; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@「EEEE,MMMM d,yyyy」]; NSDate * date = [NSDate dateWithTimeIntervalSinceReferenceDate:279498721]; NSString * formattedDateString = [dateFormatter stringFromDate:date]; NSLog(@「formattedDateString:%@」,formattedDateString); 當我嘗試放置tempString其中2794 ....編號在系統錯誤: 「不兼容的參數類型。任何想法.Thx – 2009-11-10 05:51:26

+0

@Leland - 是啊。2974 ...是一個數字(原始)你不能傳入一個對象。 – 2009-11-10 06:15:29