獲取日期的一些用法轉(zhuǎn)載

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDate *now;

NSDateComponents *comps = [[NSDateComponents alloc] init];

NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit |

NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

now=[NSDate date];

comps = [calendar components:unitFlags fromDate:now];

//? ? week = [comps weekday];

//? ? month = [comps month];

//? ? day = [comps day];

//? ? hour = [comps hour];

//? ? min = [comps minute];

//? ? sec = [comps second];

//

//? ? //Week:

//? ? 1 --星期天

//? ? 2--星期一

//? ? 3--星期二

//? ? 4--星期三

//? ? 5--星期四

//? ? 6--星期五

//? ? 7--星期六

// 簡單記錄一下ios里面獲取系統(tǒng)時間的方法丹允,以后有別的更詳細(xì)的功能再更新萎馅。

NSString* date;

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

[formatter setDateFormat:@"YYYY-MM-dd%20hh:mm:ss"];

date = [formatter stringFromDate:[NSDate? date]];

//date 顯示為 2011-11-01%2012:12:12

// 想實現(xiàn)查找?guī)滋烨暗臅r間,可以用這個方法

// NSDate* date = [[NSDate alloc] init];

//date = [date dateByAddingTimeInterval:-5*3600*24];

//這是用現(xiàn)在的時間假栓,往前面減5天猾漫,得到的時間点晴。非常好用。做iphone開發(fā)真是享受啊悯周。粒督。

//? ? 摘自 diqun1314的專欄

//? ? NSDate存儲的是世界標(biāo)準(zhǔn)時(UTC),輸出時需要根據(jù)時區(qū)轉(zhuǎn)換為本地時間

//? ? Dates

//? ? NSDate類提供了創(chuàng)建date队橙,比較date以及計算兩個date之間間隔的功能坠陈。Date對象是不可改變的萨惑。

//? ? 如果你要創(chuàng)建date對象并表示當(dāng)前日期捐康,你可以alloc一個NSDate對象并調(diào)用init初始化:

//

NSDate *now = [[NSDate alloc] init];

//

//? ? 或者使用NSDate的date類方法來創(chuàng)建一個日期對象。如果你需要與當(dāng)前日期不同的日期庸蔼,你可以使用NSDate的initWithTimeInterval...或dateWithTimeInterval...方法解总,你也可以使用更復(fù)雜的calendar或date components對象。

//

//? ? 創(chuàng)建一定時間間隔的NSDate對象:

NSTimeInterval secondsPerDay = 24 * 60 * 60;

NSDate *tomorrow = [[NSDate alloc] initWithTimeIntervalSinceNow:secondsPerDay];

NSDate *yesterday = [[NSDate alloc] initWithTimeIntervalSinceNow:-secondsPerDay];

// 使用增加時間間隔的方式來生成NSDate對象:

NSTimeInterval secondsPerDay = 24 * 60 * 60;

NSDate *today = [[NSDate alloc] init];

NSDate *tomorrow, *yesterday;

tomorrow = [today dateByAddingTimeInterval: secondsPerDay];

yesterday = [today dateByAddingTimeInterval: -secondsPerDay];

//? 如果要對NSDate對象進(jìn)行比較姐仅,可以使用isEqualToDate:, compare:, laterDate:和 earlierDate:方法花枫。這些方法都進(jìn)行精確比較刻盐,也就是說這些方法會一直精確比較到NSDate對象中秒一級。例如劳翰,你可能比較兩個日期敦锌,如果他們之間的間隔在一分鐘之內(nèi)則認(rèn)為這兩個日期是相等的。在這種情況下使用佳簸,timeIntervalSinceDate:方法來對兩個日期進(jìn)行比較乙墙。下面的代碼進(jìn)行了示例:

if (fabs([date2 timeIntervalSinceDate:date1]) < 60) ...

//? ? ? ? NSCalendar & NSDateComponents

//? ? ? ? 日歷對象封裝了對系統(tǒng)日期的計算,包括這一年開始生均,總天數(shù)以及劃分听想。你將使用日歷對象對絕對日期與date components(包括年,月马胧,日汉买,時,分佩脊,秒)進(jìn)行轉(zhuǎn)換蛙粘。

//? ? ? ? NSCalendar定義了不同的日歷,包括佛教歷威彰,格里高利歷等(這些都與系統(tǒng)提供的本地化設(shè)置相關(guān))组题。NSCalendar與NSDateComponents對象緊密相關(guān)。

//? ? ? ? 你可以通過NSCalendar對象的currentCalendar方法來獲得當(dāng)前系統(tǒng)用戶設(shè)置的日歷抱冷。

NSCalendar *currentCalendar = [NSCalendar currentCalendar];

NSCalendar *japaneseCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSJapaneseCalendar];

NSCalendar *usersCalendar = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];

//usersCalendar和currentCalendar對象是相等的崔列,盡管他們是不同的對象。

// 你可以使用NSDateComponents對象來表示一個日期對象的組件——例如年旺遮,月赵讯,日和小時。如果要使一個NSDateComponents對象有意義耿眉,你必須將其與一個日歷對象相關(guān)聯(lián)边翼。下面的代碼示例了如何創(chuàng)建一個NSDateComponents對象:

NSDateComponents *components = [[NSDateComponents alloc] init];

[components setDay:6];

[components setMonth:5];

[components setYear:2004];

NSInteger weekday = [components weekday]; // Undefined (== NSUndefinedDateComponent)

// 要將一個日期對象解析到相應(yīng)的date components,你可以使用NSCalendar的components:fromDate:方法鸣剪。此外日期本身组底,你需要指定NSDateComponents對象返回組件。

NSDate *today = [NSDate date];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *weekdayComponents = [gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:today];

NSInteger day = [weekdayComponents day];

NSInteger weekday = [weekdayComponents weekday];

//? ? 同樣你也可以從NSDateComponents對象來創(chuàng)建NSDate對象:

NSDateComponents *components = [[NSDateComponents alloc] init];

[components setWeekday:2]; // Monday

[components setWeekdayOrdinal:1]; // The first Monday in the month

[components setMonth:5]; // May

[components setYear:2008];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDate *date = [gregorian dateFromComponents:components];

// 為了保證正確的行為筐骇,您必須確保使用的組件在日歷上是有意義的债鸡。指定“出界”日歷組件,如一個-6或2月30日在公歷中的日期值產(chǎn)生未定義的行為铛纬。

// 你也可以創(chuàng)建一個不帶年份的NSDate對象厌均,這樣的操作系統(tǒng)會自動生成一個年份,但在后面的代碼中不會使用其自動生成的年份告唆。

NSDateComponents *components = [[NSDateComponents alloc] init];

[components setMonth:11];

[components setDay:7];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDate *birthday = [gregorian dateFromComponents:components];

//下面的示例顯示了如何從一個日歷置換到另一個日歷:

NSDateComponents *comps = [[NSDateComponents alloc] init];

[comps setDay:6];

[comps setMonth:5];

[comps setYear:2004];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDate *date = [gregorian dateFromComponents:comps];

NSCalendar *hebrew = [[NSCalendar alloc] initWithCalendarIdentifier:NSHebrewCalendar];

NSUInteger unitFlags = NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit;

NSDateComponents *components = [hebrew components:unitFlags fromDate:date];

NSInteger day = [components day]; // 15

NSInteger month = [components month]; // 9

NSInteger year = [components year]; // 5764

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棺弊,一起剝皮案震驚了整個濱河市晶密,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌模她,老刑警劉巖稻艰,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侈净,居然都是意外死亡连锯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門用狱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來运怖,“玉大人,你說我怎么就攤上這事夏伊∫≌梗” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵溺忧,是天一觀的道長咏连。 經(jīng)常有香客問我,道長鲁森,這世上最難降的妖魔是什么祟滴? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮歌溉,結(jié)果婚禮上垄懂,老公的妹妹穿的比我還像新娘。我一直安慰自己痛垛,他們只是感情好草慧,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匙头,像睡著了一般漫谷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蹂析,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天舔示,我揣著相機(jī)與錄音,去河邊找鬼电抚。 笑死惕稻,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喻频。 我是一名探鬼主播缩宜,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼肘迎,長吁一口氣:“原來是場噩夢啊……” “哼甥温!你這毒婦竟也來了锻煌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤姻蚓,失蹤者是張志新(化名)和其女友劉穎宋梧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狰挡,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡捂龄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了加叁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倦沧。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖它匕,靈堂內(nèi)的尸體忽然破棺而出展融,到底是詐尸還是另有隱情,我是刑警寧澤豫柬,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布告希,位于F島的核電站,受9級特大地震影響烧给,放射性物質(zhì)發(fā)生泄漏燕偶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一础嫡、第九天 我趴在偏房一處隱蔽的房頂上張望指么。 院中可真熱鬧,春花似錦榴鼎、人聲如沸涧尿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姑廉。三九已至,卻和暖如春翁涤,著一層夾襖步出監(jiān)牢的瞬間桥言,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工葵礼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留号阿,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓鸳粉,卻偏偏與公主長得像扔涧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容