【问题标题】:sqlite writing a date into an emailsqlite 将日期写入电子邮件
【发布时间】:2010-12-14 20:56:03
【问题描述】:

我正在从 sqlite 导出日期值并将其放入电子邮件中。日期显示如下 279498721.322872

我在 Iphone 应用程序中使用 Objective C。有谁知道如何将此导出作为常规日期进行,无论是否都是数字 2009-02-10 或任何可辨认的?

【问题讨论】:

  • 您使用的是什么语言?我知道在 C# 中,sqlite 驱动程序会自动处理这类事情。
  • 我只是想添加该信息,Objective C,iphone App....谢谢询问

标签: iphone objective-c sqlite date


【解决方案1】:

好吧,如果您使用 +dateWithTimeIntervalSinceReferenceDate 将数字 279498721.322872 放入 NSDate 对象中,您会得到(在 MDT 时区中):2009-11-09 15:32:01 -0700,这还不到 4 小时前。如果这是您期望的时间,那么格式化它就像使用 NSDateFormatter 一样简单。

但是,需要注意的是 sqlite(默认情况下)将日期存储为文本表示形式(除非您在 sql 语句中指定不同的方式)。所以这里真正的问题是“你从哪里得到这个数字?”

【讨论】:

  • 戴夫,谢谢,到目前为止... 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
  • @Leland - 是的。 2974... 是一个数字(原语)。你不能在那里传递一个对象。
【解决方案2】:
echo date("Y-m-d",time(279498721.322872));

【讨论】:

    【解决方案3】:

    感谢您的回复。答案来自我的 Guru Alex Cone。他告诉我使用以下内容:

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

    然后可以将tempInterval 变量加载到NSDate 方法中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2017-06-16
      • 2016-07-25
      • 2021-07-16
      • 1970-01-01
      • 2021-10-22
      • 2013-11-03
      相关资源
      最近更新 更多