数据库

//

//  ViewController.m

//  时间日期

//

//  Created by 熊永静 on 16/1/6.

//  Copyright © 2016 . All rights reserved.

//

/*

 NSDate 日期

 NSTimeInterval 时间间隔

 NSDateFormatter 时间格式器

 日期 时间戳

 日期 字符串

 日期 指定格式的字符串

 

 时间戳 日期

 字符串 日期

 指定格式的字符串 日期

 

 时间的推算

 

 NSDate:日期相关的类 CTM时间(国际标准时间)

 1NSDate 初始化

 NSDate *date = [NSDate date];//当前时间

 NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:interval];//获得一个时间间隔 到现在的日期(用于推算 前面 后面的时间) 过去的时间间隔(- 将来的时间间隔(+

 NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1452044015];//获得 一个时间戳 所表示的日期

 

 2NSDate -> 时间戳 (1970-now) -> 字符串表示

 NSDate有一个属性timeIntervalSince1970 -> 可以获得到 (1970 - now) 一个时间间隔 ->转成字符串就是表示日期的时间戳

 NSString *timeStamp = [NSString stringWithFormat:@"%d",(int)curDate.timeIntervalSince1970];

 

 3、两个日期之间的比较

 - (NSDate *)earlierDate:(NSDate *)anotherDate;//比较两个日期 谁早 返回早的日期

 - (NSDate *)laterDate:(NSDate *)anotherDate;//比较两个日期 谁晚 返回晚的日期

 - (BOOL)isEqualToDate:(NSDate *)otherDate;//比较两个日期是否相同 返回BOOL


 时间格式器:NSDateFormatter

 把日期转换成需要的格式,格式化日期使用字符串来表示的

 

 @"yyyy-MM-dd HH:mm:ss"年月日

 @"2016-01-06 11:06:30";

 作用:

 1、可以把日期转换成字符串(指定格式)

 2、字符串(指定格式)转换成日期

 注意:

 会把GTM时间转换成系统时间,时间将没有8小时时差

 日期格式如下:

 y 

 M  年中的月份

 D  当天是今年的第多少天

 d  月份中的天数

 F  月份中的周数

 E  星期几

 a  Am/pm

 H  一天中的小时数(0-23

 k  一天中的小时数(1-24

 K  am/pm 中的小时数(0-11  Number  0

 h  am/pm 中的小时数(1-12  Number  12

 m  小时中的分钟数  Number  30

 s  分钟中的秒数  Number  55

 S  毫秒数  Number  978

 z  时区  General time zone  Pacific Standard Time; PST; GMT-08:00

 Z  时区  RFC 822 time zone  -0800

 

 ------------------------------

 日期格式器的使用

 把日期转换成字符串

 NSDateFormatter 把日期 转换成 需要的格式

 格式化日期的 格式 用字符串 表示

 @"yyyy-MM-dd HH:mm:ss"

 @"2016-01-06 11:06:30";

 

 作用:

 1、日期 转换成 字符串(指定格式)

 2、字符串(指定格式) 转换成 日期

 

 *****会把GTM 转换成 系统时间

 

 1、初始化

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

 2、设置日期格式器的 格式 -> 用字符串表示

 dateFormatter.dateFormat = @"yyyyMMdd E a";

 3、使用格式器 转换

 1)把日期 转成 字符串

 NSString *dateS = [dateFormatter stringFromDate:date20];

 2)把字符串 转换成 日期

 NSDate *date10 = [formatter dateFromString:dateString];

 */

#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

//  初始化一个日期方式一

//    NSDate *date = [NSDate date];

//    方式二

//    NSTimeInterval时间间隔单位秒

//    从现在开始过了多少秒,过去的时间是(-)未来的时间是(+

    NSTimeInterval interval = 60*60*8;    NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:interval];

    NSLog(@"%@",date1);


    NSTimeInterval pastTen = 60*60*24*10;

    NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:interval-pastTen];

    NSLog(@"%@",date2);

//    *****方式三

//    时间戳:1970年到现在的一个间隔(字符串)可以表示一个唯一的时间标识

    NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1452044015];

    NSLog(@"%@",date3);

//    日期转换成时间间隔->1、可以获得时间戳(1970-现在)2、两个日期的时间间隔

//   - (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate

//1452044015这个时间戳对应的日期与当前时间的时间间隔

    NSTimeInterval interval2 = fabs([date3 timeIntervalSinceDate:[NSDate date]]);

    NSLog(@"%f",interval2);

    

//    计算两个日期差多少小时多少分多少秒

    int h = interval2/(60*60);

    NSLog(@"两个时间相差%d小时",h);

    

//   计算完小时之后剩余的时间间隔

    int remainTime = ((int)interval2)%(60*60);

    int s = remainTime/60;

    NSLog(@"相隔多少分%d",s);

    int m = remainTime%60;

    NSLog(@"相隔多少分%d",m);

/*

  取绝对值:不区分正负数 (无符号)

  abs(<#int#>)

  fabs(<#double#>)

  fabsf(<#float#>)

 */

//  从现在到1970年的时间间隔

//    日期转时间戳

    NSDate *curDate = [NSDate date];

    NSLog(@"%f",curDate.timeIntervalSince1970);

    NSString *timeStamp = [NSString stringWithFormat:@"%d",(int)curDate.timeIntervalSince1970];

    NSLog(@"%@",timeStamp);

//  两个日期之间的比较

//    比较14510472161451847216

//    1、要转换成日期

    NSDate *one = [NSDate dateWithTimeIntervalSince1970:1451047216];

    NSDate *two = [NSDate dateWithTimeIntervalSince1970:1451847216];

//    2、开始比较

    NSDate *eralierDate = [one earlierDate:two];//比较one是不是比two早,会返回一个比较早的日期

    NSLog(@"比较早的日期%@",eralierDate);

    

    NSDate *laterData = [one laterDate:two];

    NSLog(@"比较早的日期%@",laterData);

    

//    比较两个日期是否一样,返回值是BOOL类型

   BOOL result = [one isEqualToDate:two];

    NSLog(@"%d",result);

#pragma mark---------------------------------

//    日期格式器

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

//    *****格式属性

    

    formatter.dateFormat = @"yyyyMMdd hh:mm:ss a E";

//    大写的M表示月,小写的m表示分

//    大写的H表示24进制,小写的h表示12

//    大写的S表示毫秒,小写的s表示秒

//    把日期转换成字符串

//    1、日期

    NSDate *now = [NSDate date];

//    2、使用日期格式器进行转换

    NSString *dataString = [formatter stringFromDate:now];

    NSLog(@"%@",dataString);

//    3、把字符串转换成日期

    NSDate *date11 = [formatter dateFromString:dataString];

    NSLog(@"%@",date11);

    

//    1451847216这个时间戳是某年某月某日 某周几 上下午

//    1、找到时间戳 所在的日期

    

    NSString *timeStemp = @"1451847216";

    NSDate *date22 = [NSDate dateWithTimeIntervalSince1970:[timeStemp doubleValue]];

//    初始化日期格式器,并指定格式

    NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];

    formatter2.dateFormat = @"yyyyMMdd E a";

//    使用格式器开始转换

    NSString *dateCur = [formatter2 stringFromDate:date22];

    NSLog(@"%@",dateCur);

//   将周一变成星期一

    /*

     作业:

     添加 创建日期的 字段

     日期用 时间戳 的形式 存储

     在添加内容的时候  自动保存到 数据库

     */


}

@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值