數據庫

//

//  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


發佈了37 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章