日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NSDateFormatter and NSDateComponents

發(fā)布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NSDateFormatter and NSDateComponents 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

NSDateFormatter調整時間格式的代碼

在開發(fā)iOS程序時,有時候需要將時間格式調整成自己希望的格式,這個時候我們可以用NSDateFormatter類來處理。
例如:
//實例化一個NSDateFormatter對象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

//設定時間格式,這里可以設置成自己需要的格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

//[NSDate date]可以獲取系統(tǒng)當前時間
NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];

//輸出格式為:2010-10-27 10:22:13
NSLog(@”%@”,currentDateStr);

//alloc后對不使用的對象別忘了release
[dateFormatter release];

NSDateComponents

NSDateComponents封裝在一個可擴展的,面向對象的方式的日期組件。它是用來彌補時間的日期和時間組件提供一個指定日期:小時,分鐘,秒,日,月,年,等等。它也可以用來指定的時間,例如,5小時16分鐘。一個NSDateComponents對象不需要定義所有組件領域。當一個NSDateComponents的新實例被創(chuàng)建,日期組件被設置為NSUndefinedDateComponent

一個NSDateComponents對象本身是毫無意義的;你需要知道它是針對什么日歷解釋,你需要知道它的值是否是正整數(shù)和值是多少。

NSDateComponents的實例不負責回答關于一個日期以外的信息,它是需要先初始化的。例如,如果你初始化一個對象為200456日,其星期幾NSUndefinedDateComponent,不是星期四。要得到正確的星期幾,你必須創(chuàng)建一個NSCalendar日歷實例,創(chuàng)建一個NSDate對象并使用dateFromComponents:方法,然后使用components:fromDate:檢索平周幾

Getting Information About an NSDateComponents Object

獲取一個NSDateComponents對象的信息

  • –?era 時代
  • –?year
  • –?month
  • –?day
  • –?hour
  • –?minute
  • –?second
  • –?week
  • –?weekday
  • –?weekdayOrdinal
  • –?quarter 季度

Setting Information for an NSDateComponents Object

設置一個NSDateComponents對象的信息

  • –?setEra:
  • –?setYear:
  • –?setMonth:
  • –?setDay:
  • –?setHour:
  • –?setMinute:
  • –?setSecond:
  • –?setWeek:
  • –?setWeekday:
  • –?setWeekdayOrdinal:
  • –?setQuarter:

例子如下:獲得2004年5月6日是星期幾

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];

[comps release];

NSDateComponents *weekdayComponents =

? ? [gregorian components:NSWeekdayCalendarUnit fromDate:date];

int weekday = [weekdayComponents weekday];

NSLog(@"%d",weekday);

如果需要更加詳細,請查閱 “Calendars, Date Components, and Calendar Units” in Date and Time Programming Guide.日期和時間的程序指南

//一段例子:計算距離某一天還有多少時間

NSDate* toDate ? = [ [ NSDate alloc] initWithString:@"2012-9-29 0:0:00 +0600" ]; ?

NSDate*? startDate? = [ [ NSDate alloc] init ]; ?

NSCalendar* chineseClendar = [ [ NSCalendar alloc ] initWithCalendarIdentifier:NSGregorianCalendar ]; ?

NSUInteger unitFlags = ?

NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit; ?

NSDateComponents *cps = [chineseClendar components:unitFlags fromDate:startDate? toDate:toDate? options:0]; ?

NSInteger diffHour = [cps hour]; ?

NSInteger diffMin? ? = [cps minute]; ?

NSInteger diffSec ? = [cps second]; ?

NSInteger diffDay ? = [cps day]; ?

NSInteger diffMon? = [cps month]; ?

NSInteger diffYear = [cps year]; ?

NSLog(? @" From Now to %@, diff: Years: %d? Months: %d, Days; %d, Hours: %d, Mins:%d, sec:%d",? ?

[toDate description], diffYear, diffMon, diffDay, diffHour, diffMin,diffSec ); ?

[toDate release]; ?

[startDate release]; ?

[chineseClendar release];?

轉載于:https://blog.51cto.com/rongbaohong/895141

總結

以上是生活随笔為你收集整理的NSDateFormatter and NSDateComponents的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。