1. 程式人生 > >NSDate的使用方法及步驟(比較兩個日期的前後)

NSDate的使用方法及步驟(比較兩個日期的前後)

NSDate這個類接觸的時候很像Java中Date,所以很多方法似乎都是一樣,只是名字不同而已。
下面是幾個典型時間操作:
1、系統時間按照設定的格式以字串形式輸出:

// 建立一個時間物件
       NSDate *date = [NSDatedate];
       // (PS:剛開始的時候很多人覺得時間不對,其實date的時間是0時區的時間,而中國在(北京-東8區),相差8個小時,所以把系統時間的小時加上8,就是中國北京的時間了)
        // 日期格式化類
        NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

        // 設定時間格式
formatter.dateFormat [email protected]"yyyy-MM-dd HH:mm:ss"; /* y年 M月 d日 H(24小時制)時 h(12小時制)時 m分 s秒 */ // 時間轉為字串 NSString *str = [formatter stringFromDate:date]; NSLog(@"%@",str);

2、給時間字串轉化為設定格式輸出的時間:

 // 將字串轉化為時間
        NSString
*str2 [email protected]"2012/03/09 22:38:17"; // 日期格式化類 NSDateFormatter *formatter2 = [[NSDateFormatteralloc] init]; // 設定時間格式 formatter2.dateFormat [email protected]"yyyy/MM/dd HH:mm:ss"; // 字串轉為時間 NSDate *date2 = [formatter2 dateFromString:str2]; NSLog
(@"%@",date2);

3、建立時間物件的方法

// 建立一個時間物件的方法
       NSDate *date1 = [NSDatedate];
       NSLog(@"%@",date1);

        //這個方法表示:從date1的時間開始,返回3600秒即一個小時時間後的時間
       NSDate *date2 = [NSDatedateWithTimeInterval:3600sinceDate:date1];
       NSLog(@"%@",date2);

       /*
         2015-09-07 20:46:28.379 NSDate[1599:173993] 2015-09-07 12:46:28 +0000
         2015-09-07 20:46:28.380 NSDate[1599:173993] 2015-09-07 13:46:28 +0000
         */

        //這個方法表示:從1970年1月1日 00:00:00的時間開始,返回3600秒即一個小時時間後的時間
        NSDate *date3 = [NSDatedateWithTimeIntervalSince1970:3600];
        NSLog(@"%@",date3);
        // 2015-09-07 20:49:07.912 NSDate[1607:177220] 1970-01-01 01:00:00 +0000

        //這個方法表示:從2001年1月1日 00:00:00的時間開始,返回3600秒即一個小時時間後的時間
        NSDate *date4 = [NSDatedateWithTimeIntervalSinceReferenceDate:3600];
       NSLog(@"%@",date4);

        //這個方法表示:從現在的時間開始,返回3600秒即一個小時時間後的時間
        NSDate *date5 = [NSDatedateWithTimeIntervalSinceNow:3600];
       NSLog(@"%@",date5);

方法實在太多,很難一一舉例,往往都是實踐的時候再找文件,所以就寫到這裡,內容很淺顯,希望對你有幫助!

補充:比較兩個日期的前後

+(int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSString *oneDayStr = [dateFormatter stringFromDate:oneDay];
    NSString *anotherDayStr = [dateFormatter stringFromDate:anotherDay];
    NSDate *dateA = [dateFormatter dateFromString:oneDayStr];
    NSDate *dateB = [dateFormatter dateFromString:anotherDayStr];
    NSComparisonResult result = [dateA compare:dateB];
    NSLog(@"date1 : %@, date2 : %@", oneDay, anotherDay);
    if (result == NSOrderedDescending) {
        //NSLog(@"Date1  is in the future");
        return 1;
    }
    else if (result == NSOrderedAscending){
        //NSLog(@"Date1 is in the past");
        return -1;
    }
    //NSLog(@"Both dates are the same");
    return 0;

}

相關推薦

NSDate的使用方法步驟比較日期前後

NSDate這個類接觸的時候很像Java中Date,所以很多方法似乎都是一樣,只是名字不同而已。 下面是幾個典型時間操作: 1、系統時間按照設定的格式以字串形式輸出: // 建立一個時間物件 NSDate *date = [NSDated

hibernate配置多個數據源事物資料來源為例

在ssh專案中,需要連線兩個不同ip下的資料庫,所以必須要給hibernate配置兩個或多個數據源 因為我只有一臺電腦,所以我配置的是sqlserver+mysql兩個資料來源 首先hibernate配置是直接從myeclipse中新增的   右鍵----myeclipse

js比較日期大小的簡單方法

下面程式碼是拿一個指定日期和當前系統時間比較大小 var finishDate = "2017-10-12 13:11:03"; finishDate = finishDate .replace("-","/");//替換字元,變成標準格式 finishDate = ne

C#代碼中如何比較日期的大小?

inf div return 比較 action tco date string 技術 C#中比較兩個日期大小的方法 /// <summary> /// 比較兩個日期大小 /// </summary>

Java的環境配置步驟配置三環境變數

  1, Classpath的配置 .     2,path的配置 C:\Program Files (x86)\Java\jdk1.8.0_11\bin       3,Java_hom

js-比較日期的大小

第一種方法: function CompareDate(d1,d2) { return ((new Date(d1.replace(/-/g,"\/"))) > (new Date(d2.replace(/-/g,"\/")))); } var current_time = "20

LeetCode刷題記錄——第八十八題合併有序陣列

題目描述 給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為一個有序陣列。 說明: 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。 你可以假設 nums1 有足夠的空間(

CF193D Two Segments 線段樹+dp外加擴充套件題

大概算是個系列整理 (最強版是模擬賽原題)) 首先,我們先來看這個題目。 QWQ一開始是毫無頭緒,除了列舉就是列舉 首先,我們可以列舉一個右端點,然後算一下當前右端點的答案 我們令\(f[l,r]\)表示\(a_l到a_r\)這些數,能夠最少劃分成幾段連續的數。 顯然,我們要求的是以每個端點為右端

java實現計算日期相差多少月、比較日期大小 等常用日期操作

import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.u

JAVA 比較日期相差的天數,隔天計算

JAVA 比較兩個日期相差的天數 在工作中我們經常遇到需要計算兩個日期相差的天數的問題,一個是通過得到兩個日期之間的毫秒數,換算成天數得到究竟差了多少天.但是這種問題會出現隔天問題,既: 2017.11.16 4:35 到 2017.11.17 3:35

java 比較日期大小日期型別和字元型別

/** * 比較兩個日期之間的大小 * * @param d1 * @param d2 * @return 前者大於後者返回true 反之false */ public static b

C#比較日期的大小

using System;using System.Collections;public class MyClass{public static void Main(){DateTime dt1 = DateTime.Parse("2006-04-01");DateTime

JS比較日期的大小

最近遇到一個問題是關於日期的大小比較,如果日期不同位就會出現判斷錯誤,所以這裡驚醒一下自己。出現這個情況的原因是,字串比較小,遵循從左到右的原則,’2’和’1314’比較,’2’大於’1314’。

shell, python中比較日期的先後

在Shell中我們可以利用date命令比較兩個日期的大小,方法是先把日期轉換成時間戳格式,再進行比較。 date 的+%s可以將日期轉換成時間戳格式,看下面的例子: #!/bin/bash  date1="2008-4-09 12:00:00" date2="20

JAVA 比較日期相差的天數

在測試工作中經常會使用到比較兩個日期相差的天數,我之前用過實現這一功能的兩個版本的方法,原始碼如下: 版本一:public static int getIntervalDays(Date fDate, Date oDate) { if (null == fDa

如何比較EXCEL 檔案的不同各個EXCEL版本的方法

情景對話: Marketing給你傳了一個EXCEL,發話:這是最新版本,上次的作廢,把新的release出去吧。 我,開啟...納尼?!沒有mark,沒有comments?我怎麼知道你改了什麼??每個都對過來?!!我能爆粗口麼 !@&am

比較java.util.Date 的日期年月日是否相同忽略時、分、秒的多種方法

    介紹幾種比較Date年月日的方法 1、需求: 1)下面兩個時間進行比較: Thu Jan 01 08:59:00 CST 1970 Thu Jan 01 08:48:00 CST 1970 =》比較結果:same 2)下面兩個時間進行比較: Thu Jan

比較對象屬性屬性值

bject ace ive args main authorize code pre cer import java.lang.reflect.Method; private static Object getFieldValue(Object thisClass, St

shell腳本學習2比較數字大小

$1 num centos7 錯誤 you equal shel 腳本 語句 註意:shell中對比字符串只能使用==、<、>、!=、-z、-n。對比字符串時,末尾一定要加上x(或者a、b等)一個字符,因為if [ $1x == "ab"x ]時如果沒有了x

List中的Contains方法內部其實是用對象的equals方法比較,所以如果比較類就重寫類的equals方法即可

mage image inf post lis con bsp 兩個類 png List中的Contains方法內部其實是用對象的equals方法做比較,所以如果比較兩個類就重寫類的equals方法即可