xcode 中nsdate 日期的一些处理方法

  • sqlite中存放的NSDate的时候,存放的是一个小数点后 6位的 浮点数字,表示的是 NSTimeInterval(以计算)

    coredata存储NSDate时,在内部是存储了字参考时间以来的NSTimeInterval(以 计算),而这个参考时间根据apple dateandtimes doc, NSDate computes time as seconds relative to an absolute reference time: the first instant of  January 1, 2001 GMT ,其实参考日期是2001.1.1,而非1970年1月1日,因此有些语言在直接读取coredata NSDate属性的sqlite Timestamp字段并转换成日期后,与原来存储的日期不一样了。


  • 把字符串转换成NSDate


    1. +(NSDate *)NSStringDateToNSDate:(NSString *)string {  
    2.     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    3.     [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
    4.     //#define kDEFAULT_DATE_TIME_FORMAT (@"yyyy-MM-dd HH:mm:ss'Z'")
    5.     [formatter setDateFormat:kDEFAULT_DATE_TIME_FORMAT];
    6.     NSDate *date = [formatter dateFromString:string];
    7.     [formatter release];
    8.     return date;
    9. }
      • NSDate * date = [NSDate  date] ; 这个语句中的 date 变量,不需要 使用 [date release]; 否则会引起内存泄露。
  • 获取 北京时区的时间

缺省获得的时间是 +000 时区的。和北京时间 相差8个小时。

可以通过如下代码获得 北京时区的时间

+(NSDate *) localeDateTime
{
    NSDate * seldate = [NSDate date];
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    NSInteger interval = [zone secondsFromGMTForDate: seldate];
    NSDate * date = [seldate dateByAddingTimeInterval: interval];
    
    return date;
}



  • 把当前的时间 转换成 字符串
    +(NSString *) localDateTimeString
    {
        NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
        [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];    
        [formatter setDateFormat:kDEFAULT_DATE_TIME_FORMAT];
        NSDate *now = [Tools localeDateTime];
    
        return  [formatter stringFromDate: now];
    
    
    }
    



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值