溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于NSDate和NSCalendar的一些基本使用

發(fā)布時間:2020-08-03 15:43:10 來源:網(wǎng)絡 閱讀:817 作者:dragon_cao 欄目:開發(fā)技術

1、NSCalendar

//首先創(chuàng)建NSCalendar的實例,可以簡單的用當前實例,也可以創(chuàng)建其它的歷法對應的實例。

NSCalendar *cal = [NSCalendar currentCalendar];

//下面通過NSCalendar來獲取各個元素,保存在類NSDateComponents的實例中

//需要通過函數(shù)參數(shù)components指定希望獲取的元素,詳細的枚舉后面會列出

NSDate *startDate = [[NSDatenew] autorelease];

NSDateComponents *dateComps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:startDate];

int year = [dateCompsyear];

int month = [dateCompsmonth];

int day = [dateCompsday];

int hour = [dateCompshour];

int minute = [dateCompsminute];

int second = [dateCompssecond];


NSLog(@"%d-%d-%d-%d-%d-%d",year,month,day,hour,minute,second);

打印:2013-3-19-17-2-2147483647【這個打印出來的跟實際北京時間是一樣的】


NSDate *newDate = [cal dateFromComponents:dateComps];

NSLog(@"%@",newDate);

打?。?/span>2013-03-1909:02:00 +0000【和北京時間相差8小時,北京時間=GMT時間+8小時】


2NSDate


NSDate *date = [NSDate date];

NSLog(@"%@",date);

打?。?/span>2013-03-1909:02:00 +0000【和北京時間相差8小時,北京時間=GMT時間+8小時】


轉(zhuǎn)成正確的北京時間:

NSDate *date = [NSDate date];

NSDateFormatter *formater = [[[NSDateFormatteralloc] init]autorelease];

formater.timeZone = [NSTimeZone systemTimeZone];//無效

[formater setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

NSString *timestr = [formater stringFromDate: date];


NSLog(@"sss:%@",timestr);

打?。?/span>2013-03-1905:09:34

//這個根據(jù)系統(tǒng)設置的時間【是否24小時制】顯示方式來,2013-03-19 17:12:19或者2013-03-19 05:09:34


3、驗證:北京時間=GMT時間+8小時


NSDate *date = [NSDate date];

[self getGMTTimeStr:date];

- (NSString*)getGMTTimeStr:(NSDate *)oriDate {

NSDateFormatter *formater = [[NSDateFormatteralloc] init];

   [formater setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

NSString *timestr = [formater stringFromDate:oriDate];

int interval = [[NSTimeZonesystemTimeZone] secondsFromGMTForDate:oriDate];

NSDate *gmtDate = [oriDate dateByAddingTimeInterval:-interval];

NSString *gmttimestr = [formater stringFromDate:gmtDate];

NSLog(@"oriTime vs. gmtTime: %@, %@",timestr,gmttimestr);

return gmttimestr;

}

打印:oriTime vs. gmtTime: 2013-03-1917:12:00, 2013-03-1909:12:00


4、NSDateFormatter格式化參數(shù)相關


格式化參數(shù)如下:

G: 公元時代,例如AD公元

yy: 年的后2

yyyy: 完整年

MM: 月,顯示為1-12

MMM: 月,顯示為英文月份簡寫, Jan//跟系統(tǒng)語言版本有關系,中文顯示“3,英文顯示“Jan”

MMMM: 月,顯示為英文月份全稱,如 Janualy//跟系統(tǒng)語言版本有關系,中文顯示“3,英文顯示“Jan”

dd: 日,2位數(shù)表示,如02

d: 日,1-2位顯示,如2

EEE: 簡寫星期幾,如Sun

EEEE: 全寫星期幾,如Sunday

aa: 上下午,AM/PM

H: 時,24小時制,0-23

K:時,12小時制,0-11

m: 分,1-2

mm: 分,2

s: 秒,1-2

ss: 秒,2

S: 毫秒



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI