Object C中對時間的處理

2021-06-28 21:06:48 字數 1936 閱讀 4901

一般有獲取具體的年月日和星期,兩個不同時間的差,某一天的前一天或後一天等;在這裡我只介紹獲取具體的年月日和星期,及某一天的前一天或後一天的方法;

對時間的處理一般都會用到nsdate類和nscalendar類兩個類;

獲取當前的時間是:nsdate *nowdate = [nsdate date];獲取具體的年月日就是對nowdate的處理;一般要用到nscalendar類,首先是對nscalendar的宣告,再就是屬性的設定,其中屬性[calendar components:(...)];很重要;設定了屬性就可以根據方法獲取年月日,如int nowyear = [comps year];

獲取星期要先獲取int nowweek = [comps weekday];再對nowweek的值進行判斷,值是從1到7,分別對應的星期是從星期天到星期六。

**如下:

nsdate *nowdate = [nsdatedate];    //這是當前的時間,其實這裡可以是任意時間

nscalendar *calendar = [nscalendar currentcalendar];

nsdatecomponents *comps;

comps = [calendar components:(nsyearcalendarunit |nsmonthcalendarunit | nsdaycalendarunit | nsweekdaycalendarunit)fromdate:nowdate];

int nowyear = [comps year];

int nowmonth = [comps month];

int nowday = [comps day];

int nowweek = [comps weekday];

nsstring *weekstr = [[nsstring alloc] init];

switch (nowweek)

nslog(@"年:%d;月:%d;日:%d;%@",nowyear,nowmonth,nowday,weekstr);

某一天的前一天或後一天的方法:

這裡要用到的是nscalendar,首先也是設定屬性,和上面一樣;用到最主要的方法是[compssethour:+24];+24表示獲取下一天,-24表示獲取前一天;還有[comps setminute:0]和[comps setsecond:0]都要;

最後將calendar轉換成nsdate;方法如下:

nsdate *nowdate = [calendar datebyaddingcomponents:comps todate:showdateoptions:0];   //showdate表示某天的date,nowdate表示showdate的前一天或下一天的date

**如下:

nscalendar *calendar = [nscalendarcurrentcalendar];

nsdatecomponents *comps;

comps = [calendar components:(nshourcalendarunit |nsminutecalendarunit | nssecondcalendarunit) fromdate:[[nsdate alloc] init]];

[comps sethour:+24]; //+24表示獲取下一天的date,-24表示獲取前一天的date;

[comps setminute:0];

[comps setsecond:0];

nsdate *nowdate = [calendar datebyaddingcomponents:compstodate:showdate options:0]; //showdate表示某天的date,nowdate表示showdate的前一天或下一天的date

SQL 對時間的處理

獲取當前日期 如 yyyy mm dd select datename year,getdate datename month,getdate datename day,getdate 獲取當前日期 如 yyyy mm dd select datename year,getdate datename...

相對時間的處理處理

在vue專案中實現以下時間出現方式 安裝包dayjs dayjs 安裝 時間外掛程式 relativetime 封裝外掛程式 注入外掛程式 在元件中使用 npm i dayjs 封裝模組 封裝外掛程式 在src 下建立乙個 x.js檔案 import dayjs from dayjs 引入中文語言包...

ORACL中對時間格式的處理

1 以12小時制顯示 sql select to char sysdate,yyyy mm dd hh12 mi ss am from dual to char sysdate,yyyy mm ddhh1 2007 06 29 02 50 06 下午 2 以24小時制顯示 sql select to...