iOS 日曆時間日期的用法總結

2021-07-11 10:11:14 字數 4694 閱讀 1600

//重寫time的getter方法,獲取時間

- (nsstring *)time

return dateformatter;

}nsdate與nsdateformatter的相關用法

1.nsdateformatter配合nsdate與nsstring之間的轉化

nsdateformatter有下面2個方法:

- (nsstring *)stringfromdate:(nsdate *)date;//nsdate轉nsstring

- (nsdate *)datefromstring:(nsstring *)string;//nsstring轉nsdate

e.g.

nsstring *datestring=@"1900-01-01";

nsdateformatter *dateformatter=[[nsdateformatter alloc]init];

[dateformatter setdateformat:@"yyyy-mm-dd"];

nsdate *date=[dateformatter datefromstring:datestring];

[dateformatter release];

nsstring轉nsdate與上面類似

nsstring *datestring=[dateformatter datefromstring:[nsdate date]];

2.nsdateformatter 的一些格式介紹

[dateformatter setdateformat:@"yyyy年mm月dd日#eeee"];eeee為星期幾,eee為週幾

[dateformatter setdateformat:@"yyyy-mm-dd hh:mm:ss"];

[dateformatter setdateformat:@"yyyy年mmmmd日"];//mmmm 為xx月,乙個d可以省去01日前的0

3.nsstring轉nsdate少一天的解決辦法

用下面這種格式化方式 

1.[dateformatter setdateformat:@"yyyy-mm-dd hh:mm:ss"]; 

2.nscalendar *calendar = [nscalendar currentcalendar];

nsdatecomponents *components = [calendar components:(nsdaycalendarunit | nsmonthcalendarunit |                                  nsyearcalendarunit) fromdate:[nsdate date]];

nsdate *todaydate = [calendar datefromcomponents:components];

/**

日曆和nsdate操作

*/#import ns_assume_nonnull_begin

@inte***ce uiresponder (lybgetinfofromcanlinder)

//1.不同時區時間的轉換---格林尼治標準時間準時間轉換成當地時間

- (nsdate *)getnowdatefromatandate:(nsdate *)anydate;

//計算多少秒之前、分之前。。。。

-(void)caculatesometimeago;

// 比較兩個時間

-(void)comparedate;

//根據日期或者日期字串顯示今天和昨天

-(void)settodayandyestodaywithdate:(nsdate *)somedate datestr:(nsstring *)somedatestr;

//獲取當前時間日曆的年月日,時分秒

-(nsdictionary *)canchangebank;

@end

ns_assume_nonnull_end

*******

/** 日曆和nsdate操作

*/#import "uiresponder+lybgetinfofromcanlinder.h"

@implementation uiresponder (lybgetinfofromcanlinder)

//1.不同時區時間的轉換---格林尼治標準時間準時間轉換成當地時間

- (nsdate *)getnowdatefromatandate:(nsdate *)anydate

//計算時間日期多少秒之前、分之前。。。。

-(nsdictionary *)caculatesometimeagowithdatestr:(nsstring *)datestr

//獲取分鐘部分

components =[calendar components:nscalendarunitminute fromdate:createdatdate

todate:[nsdate date]options:0];

if(components.minute <60)

//獲取小時部分

components = [calendar components:nscalendarunithour fromdate:createdatdate todate:[nsdate date]options:0];

if(components.hour <24)

//獲取天部分

components = [calendar components:nscalendarunitday fromdate:createdatdate todate:[nsdate date]options:0];

if(components.day <30)

//獲取week部分

components = [calendar components:nscalendarunitweekday fromdate:createdatdate todate:[nsdate date]options:0];

if(components.weekday <52)

//獲取月部分

components = [calendar components:nscalendarunitmonth fromdate:createdatdate todate:[nsdate date]options:0];

if(components.month <12)

//獲取年部分

components = [calendar components:nscalendarunityear fromdate:createdatdate todate:[nsdate date]options:0];

if(components.year <10)

nsdictionary *dict=@;

return dict;

}// 比較兩個時間

-(void)comparedate else if (result == nsordereddescending) else

}//根據日期或者日期字串顯示今天和昨天

-(nsstring *)settodayandyestodaywithdate:(nsdate *)somedate datestr:(nsstring *)somedatestrelse

nsdate *fordate=[format datefromstring:datestr];//日期

// 今天的時間

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

nsdateformatter *todayformat=[[nsdateformatter alloc]init];

todayformat.timezone = [nstimezone systemtimezone];//設定時區

todayformat.dateformat=@"yyyy-mm-dd";

nsstring *todaydatestr=[todayformat stringfromdate:today];//日期字串

nsdate *fortoday=[format datefromstring:todaydatestr];//日期

//獲得nowdate和selfdate的差距---判斷是否是昨天

nscalendar *calendar = [nscalendar currentcalendar];

nsdatecomponents *cmps = [calendar components:nscalendarunitday fromdate:fordate todate:fortoday options:0];

nsstring *daystr=@"";

if([datestr isequaltostring:todaydatestr])else if(cmps.day== 1)else

}return daystr;

}//獲取當前時間日曆的年月日,時分秒

-(nsdictionary *)canchangebank;

return dict;

}@end

//多長時間前

-(nsstring *)copmarenowdateone:(nsstring *)dateonestr witholddatetwo:(nsstring *)datetwostrelse if(intvaltime>24*60*60) else if(intvaltime>0.5*60*60)

return str;

}

iOS日曆 日期 時間的計算

1.獲取當月的天數 nsinteger getnumberofdaysinmonth nscalendarunitweekday 獲取指定日期的年,月,日,星期,時,分,秒資訊 void getdateinfo 除了使用nsdatecomponent 獲取年月日等資訊,還可以通過格式化日期獲取日期的...

iOS日曆 日期 時間的計算

1.獲取當月的天數 nsinteger getnumberofdaysinmonth nscalendarunitweekday 獲取指定日期的年,月,日,星期,時,分,秒資訊 void getdateinfo 除了使用nsdatecomponent 獲取年月日等資訊,還可以通過格式化日期獲取日期的...

SQL時間日期總結

1.時間型別 datetime 8 bytes yyyy mm dd hh mm ss 1000 01 01 00 00 00 9999 12 31 23 59 59 timestamp 4 bytes yyyy mm dd hh mm ss 1970 01 01 00 00 01 2038 dat...