1.问题

今天使用FMDB做一个例子程序,新建的一张表有一个datetime字段,数据库有默认值,大概如下

CREATE  TABLE [ConsumptionType] ([id] INTEGER PRIMARY KEY  NOT NULL ,[name] TEXT,[level] TEXT,[creatdate] DATETIME default (datetime('now', 'localtime')))

当我每次去读取creatdate的时候获取到得值的是1970的时间,以前一直用字符串存时间戳,没发现这个问题

,删掉表做了几次还是不行。

    temp.creatdate=[rs dateForColumn:@"creatdate"];//1970 这种方式读取到的时间一直不对

,后来我把它读取成字符串,

     temp.creatdate=[rs stringForColumn:@"creatdate"];//这样是读取出来了正确的时间

这就说明数据库存取是正确的,只是再读取的时候出了问题,点进源码去看发现

FMDatabase类有一个NSDateFormatter属性,但它为空的时候,会采用默认的解析时间类型

所以想正确处理datetime 类型的数据时就需要传一个NSDateFormatter给db,这样就可以获取到

正确的值。

2.正确的代码样例

/**
* 获取所有的消费分类
*
* @return 以数组形式返回所有的消费分类
*/
+ (NSArray*)getAllConsumptionType{
__block NSMutableArray * arr=[[NSMutableArray alloc] init];
__block FMResultSet *rs=nil; [[DBHelper sharedFMDBManager] inDatabase:^(FMDatabase *db) {
NSString * sql=[NSString stringWithFormat:@"select * from ConsumptionType"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setLocale:[NSLocale currentLocale]];
[outputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[db setDateFormat:outputFormatter]; rs=[db executeQuery:sql]; while ([rs next]) {
ConsumptionType * temp=[[ConsumptionType alloc] init];
temp.id=[rs intForColumn:@"id"];
temp.name=[rs stringForColumn:@"name"];
temp.level=[rs intForColumn:@"level"];
temp.creatdate=[rs dateForColumn:@"creatdate"];
[arr addObject:temp];
} }];
return arr;
}

FMDB读取Datetime类型值为1970的问题的更多相关文章

  1. 当碰到unix纪元问题时strtotime怎么转时间戳(DateTime类的使用方法)

    UNIX纪元时间又称POSIX时间/新纪元时间(Epoch Time):从协调世界时1970年1月1日0时0分0秒起到现在的总秒数,不包括闰秒.正值表示1970以後,负值则表示1970年以前. Uni ...

  2. response的contentType的类型值Response.ContentType

    MIME类型的含义 MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开.多用于指定一些客户端自定义的文件名,以及一些媒体 ...

  3. C#string类;math类;datetime类

    String类: .Length字符的长度   .Trim()去掉开头以及结尾的空格 .TrimStart()去掉字符串开头的空格 .TrimEnd()去掉字符串后面的空格   .ToUpper()全 ...

  4. string、math、random、datetime类

    1.string类 变量.Replace("想要替换掉的字符或字符串","转换后的字符或字符串");//替换 练习:判断邮箱格式是否正确            ...

  5. PHP使用DateTime类做时间日期到字符串转换

    PHP关于时间日期的处理不是很规范,简单就简单了,就是不知道输入的字符串是否能够正确转化为需要的DateTime类型. 面向对象的PHP应该使用DateTime类来做string和dateTime的转 ...

  6. HttpWebRequest后台读取网页类

    using System;using System.Linq;using System.Collections.Generic;using System.Web;using System.Config ...

  7. JavaScript基本类型值与引用类型值

    前言 JS变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型的值源自一下5种基本数据类型:Underfined.Null.Boolean.Number和String. 基本类型值和引用类型 ...

  8. excel读取 工具类

    package cn.yongche.utils; import java.io.File; import java.io.FileInputStream; import java.io.IOExce ...

  9. C# - 系统类 - DateTime类

    DateTime类 ns:System 此类是一个结构 提供了访问和修改它所代表的时间 创建DateTime实例的几种方式 DateTime time = , , , , , ); Console.W ...

随机推荐

  1. pooling的原理与Python实现

    本文首先阐述pooling所对应的操作,然后分析pooling背后蕴含的一些道理,最后给出pooling的Python实现. 一.pooling所对应的操作 首先从整体上对pooling有一个直观的概 ...

  2. mysql - join two derived tables

    select t1.uid from (select uid from table1) t1 inner join (select uid from table2) t2 where t1.uid=t ...

  3. String类的构造方法详解

    package StringDemo; //String类的构造方法详解 //方法一:String(); //方法二:String(byte[] bytes) //方法三:String (byte[] ...

  4. ubuntu apt 安装

    1. ./autogen.sh: libtoolize: not found sudo apt-get install aptitude sudo aptitude install libtool 2 ...

  5. 解决: maven编译项目报“非法字符: \65279 ”错误

    打包maven项目的时候,出现异常: [INFO] ------------------------------------------------------------------------ [ ...

  6. JS绑定JavaScript事件

    //onblur="onblurs(this)" // function onblurs(e) { // alert(e.value); // }

  7. orm获取关联表里的属性值

    ORM——关系对象模型 laravel中的Eloquent ORM用于和数据表互动,其中每个数据库表会和一个对应的「模型」互动,想要了解请查看官方文档或自行百度.获取关联表里的属性值代码如下: /** ...

  8. XUtils——GET请求

    //HttpUtils实例化对象     HttpUtils http = new HttpUtils();       /*                *发送请求send(HttpMethod ...

  9. hibernate报错Unknown integral data type for ids : java.lang.String

    package com.model; // Generated 2016-10-27 14:02:17 by Hibernate Tools 4.3.1.Final /** * CmDept gene ...

  10. error: src refspec master does not match any. 错误处理办法

    自从上次学了git之后,很少用.今天在使用 本地仓库使用如下命令初始化: $ git init 之后使用如下命令添加远程库: $ git remote add origin git@github.co ...