nsdate
的常用用法
1.建立或初始化可用以下方法
用於建立
nsdate
例項的類方法有
+ (id)date;
返回當前時間
+ (id)datewithtimeintervalsincenow:(nstimeinterval)secs;
返回以當前時間為基準,然後過了
secs
秒的時間
+(id)datewithtimeintervalsincereferencedate:(nstimeinterval)secs;返回以
2001/01/01 gmt
為基準,然後過了
secs
秒的時間
+(id)datewithtimeintervalsince1970:(nstimeinterval)secs;返回以
1970/01/01 gmt
為基準,然後過了
secs
秒的時間
+ (id)distantfuture;返回很多年以後的未來的某⼀一天。比如你需要⼀乙個比現在
(now)晚(
大)很長時間的時間值,則可以呼叫該方法。
+ (id)distantpast;
返回很多年以前的某⼀一天。比如你需要⼀乙個比現在
(now)早(
小)大很長時間的時間值,則可以呼叫該方法。
用於建立
nsdate
例項的例項方法有
- (id)addtimeinterval:(nstimeinterval)secs;
返回以目前的例項中儲存的時間為基準,然後過了
secs
秒的時間
用於初始化
nsdate
例項的例項方法有
- (id)init;
初始化為當前時間。類似
date
方法
-(id)initwithtimeintervalsincereferencedate:(nstimeinterval)secs;初始化為以
2001/01/01 gmt
為基準,然後過了
secs
秒的時間。類似
datewithtimeintervalsincereferencedate:
方法
- (id)initwithtimeinterval:(nstimeinterval)secs sincedate:(nsdate *)refdate;初始化為以
refdate
為基準,然後過了
secs
秒的時間
- (id)initwithtimeintervalsincenow:(nstimeinterval)secs;
初始化為以當前時間為基準,然後過了
secs
秒的時間
3.取回時間間隔可用以下方法
- (nstimeinterval)timeintervalsincedate:(nsdate*)refdate;以
refdate
為基準時間,返回例項儲存的時間與
refdate
的時間間隔
- (nstimeinterval)timeintervalsincenow;以當前時間
(now)
為基準時間,返回例項儲存的時間與當前時間
(now)
的時間間隔
- (nstimeinterval)timeintervalsince1970;以
1970/01/01 gmt
為基準時間,返回例項儲存的時間與
1970/01/01 gmt
的時間間隔
- (nstimeinterval)timeintervalsincereferencedate;以
2001/01/01 gmt
為基準時間,返回例項儲存的時間與
2001/01/01 gmt
的時間間隔
+ (nstimeinterval)timeintervalsincereferencedate;以
2001/01/01 gmt
為基準時間,返回當前時間
(now)
與2001/01/01 gmt
的時間間隔
*///
時區類//
獲得系統時區
nstimezone
*tz = [
nstimezone
systemtimezone
];//
獲得當前時間距離
gmt時間相差的秒數
!nsinteger
seconds = [tz
secondsfromgmtfordate
:[nsdate
date
]];//
以[nsdate date]
時間為基準,間隔
seconds
秒後的時間
!nsdate
*localdate = [
nsdate
datewithtimeinterval
:seconds
sincedate
:[nsdate
date
]];//
北京時間
nslog//(@"localdate = %@"
,localdate);
日期和字串相互轉換
//日期格式的類
!nsdateformatter
*df = [[
nsdateformatter
alloc
]init
];// 2013-11-27 11:00:57
// hh 24
小時進製
hh 12
小時進製
df.dateformat
= @"yyyy-mm-dd hh:mm:ss";
nsstring
*datestr = [df
stringfromdate
:[nsdate
date
]];
nslog(@"
datestr
= %@"
, datestr);
nsdatenslog(@"*datetest = [df
datefromstring:@"
2013-11-27
11:00:57"];
datetest
= %@"
, datetest);//
預設是格林威治時間需要轉化為北京時間
nstimezone
*tz = [
nstimezone
systemtimezone
];//
獲得datetest
距離gmt
時間相差的秒數
!nsinteger
seconds = [tz
secondsfromgmtfordatensdate:datetest];
*localdate = [
nsdate
datewithtimeinterval
:seconds
sincedate
: datetest];
//北京時間
nslog(@"localdate = %@"
,localdate);
注:
nsdate
*date = [
nsdate
date
]; //這個方法有時有8小時時差,有時沒有
//最好還是加上下面的這段**
nstimezone*zone = [nstimezone
systemtimezone
];nsinteger interval = [zone secondsfromgmtfordate: date];
nsdate *localedate = [date datebyaddingtimeinterval: interval];
感謝參考,希望對您有所幫助,如有紕漏請指正。
NSDate 使用總結
1 當前時間建立nsdate nsdate mydate nsdate date nslog mydate mydate 2 從現在開始的24小時 nstimeinterval secondsperday 24 60 60 nsdate tomorrow nsdate datewithtimeint...
NSDate 的簡單使用
1 建立乙個物件,賦值為當前日期date 建立的nsdate物件,獲得的永遠是0時區的時間,china是東八區,需要加上8個小時 nsdate date nsdate date nstimezone zone nstimezone systemtimezone 修改時區 nsinteger inte...
NSDate使用方法
剛剛做ios開發第乙個需求的時候,需要判斷是否為同一天,最近需求需要判斷兩個日期是否為同一周,在網上沒有找到合適的方法,自己寫了乙個,目前用著還行。nsdate nsdateformatter nsdatecomponents nsdatecomponentformatter nscalendar ...