時間 字串的相互轉換

2021-07-13 14:28:54 字數 4435 閱讀 2615

#pragma mark -

獲取字串形式的時間戳 -(

nsstring

*)gettimestampstring

#pragma mark - 

時間戳轉為

nsstring

/***  @author zm

**  @brief  

時間戳轉為

nsstring

**  @param timestamp   

字串格式的時間戳

*  @param formatstring format格式(

預設yyyy-mm-dd hh:mm:ss.sss)

**  @return 

返回字串

*/-(

nsstring

*)event_stringfromtimestamp:(

nsstring

*)timestamp formatstring:(

nsstring

*)formatstring

nsdateformatter

*formatter = [[

nsdateformatter

alloc

]init

];[formatter 

setdatestyle

:nsdateformattermediumstyle

];[formatter 

settimestyle

:nsdateformattershortstyle

];[formatter 

setdateformat

:dateformat];

nsstring

*datestring = [formatter

stringfromdate

:updatetimestamp];

return

datestring;

}#pragma mark -

獲取字串形式的當前時間(預設

yyyy-mm-dd hh:mm:ss)

+(nsstring

*)getdatetimestring:(

nsdateformatter

*)dateformatter

nsdate

*datenow = [

nsdate

date

];return

[dateformatter

stringfromdate

:datenow];

}#pragma mark -

將字串形式的時間轉換為時間戳 +(

uint64

)gettimestampbydatestring:(

nsstring

*)datestring

else}

#pragma mark -字串轉為日期

- (nsdate *)stringtodate:(nsstring *)strdate

#pragma mark -日期轉為字串

- (nsstring *)datetostring:(nsdate *)date

#pragma mark -

將utc

日期字串轉為本地時間字串

//輸入的

utc日期格式

2013-08-03t04:53:51+0000

-(nsstring *)getlocaldateformateutcdate:(nsstring *)utcdate  

#pragma mark -

將本地日期字串轉為

utc日期字串

//本地日期格式

:2013-08-03 12:53:51

//可自行指定輸入輸出格式

-(nsstring *)getutcformatelocaldate:(nsstring *)localdate    

- (nsstring *)getutcformatdate:(nsdate *)localdate

- (nsdate *)getlocalfromutc:(nsstring *)utc

#pragma mark -

世界標準時間utc /gmt 轉為當前系統時區對應的時間 

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

如://2013-08-03t12:53:51+0800     utc時間格式下的北京時間,可以看到北京時間= utc + 8小時。

nsdateformatter*dateformatter = [[nsdateformatteralloc] init];

[dateformatter 

setdateformat

:@"yyyy-mm-dd't'hh:mm:ssz"];

nsdate *localdate = [dateformatter datefromstring:@"2013-08-03t04:56:52+0000"];      +0000 表示的是當前時間是個世界時間。

[dateformatter release];

nslog(

@"now time = %@"

,[self

getnowdatefromatandate:localdate]);

結果:2013-08-03 12:57:33.391 ***x[2547:c07] now time = 2013-08-03 12:56:52 +0000

以上注意一點,在轉出來後帶的時間是原引數anydate的時區,因此切不可再用nsdateformatter轉換。否則會多增加乙個時區的時間值。應該使用如下來提取字串

nsstring*str = [nsstringstringwithformat:

@"%@"

,[self

getnowdatefromatandate:localdate]];

nslog

(@"str = %@",str);

注nsdate物件存放的日期始終是utc的標準時間

,可以根據這個時間進行其它時間的轉換。因此上面算出來的時間中時區為 +0000,如果此時再轉為字串

#pragma mark -

比較時間間隔(天數)

+(nsinteger

)compareoneday:(

nsdate

*)oneday withanotherday:(

nsdate

*)anotherday

#pragma mark -

比較時間間隔(ms)

+(nsinteger

)compareonetime:(

nsdate

*)onetime withanothertime:(

nsdate

*)anothertime

#pragma mark -

獲取當前時間的年、月、日、時、分、秒

//獲取當前時間

nsdate *now = [nsdate date];

nslog(@

"now date is: %@"

, now);

nscalendar *calendar = [nscalendar currentcalendar];

nsuinteger unitflags = nsyearcalendarunit | nsmonthcalendarunit | nsdaycalendarunit | nshourcalendarunit | nsminutecalendarunit | nssecondcalendarunit;

nsdatecomponents *datecomponent = [calendar components:unitflags fromdate:now];

intyear = [datecomponent year];

intmonth = [datecomponent month];

intday = [datecomponent day];

inthour = [datecomponent hour];

intminute = [datecomponent minute];

intsecond = [datecomponent second];

nslog(@

"year is: %d"

, year);

nslog(@

"month is: %d"

, month);

nslog(@

"day is: %d"

, day);

nslog(@

"hour is: %d"

, hour);

nslog(@

"minute is: %d"

, minute);

nslog(@

"second is: %d"

, second);

mysql時間與字串相互轉換

時間 字串 時間戳之間的互相轉換很常用,但是幾乎每次使用時候都喜歡去搜尋一下用法 本文整理一下三者之間的 轉換 即 date轉字串 date轉時間戳 字串轉date 字串轉時間戳 時間戳轉date,時間戳轉字串 用法,方便日後學習和查閱 date format date,format 函式,mysq...

mysql時間與字串相互轉換

時間 字串 時間戳之間的互相轉換很常用,但是幾乎每次使用時候都喜歡去搜尋一下用法 本文整理一下三者之間的 轉換 即 date轉字串 date轉時間戳 字串轉date 字串轉時間戳 時間戳轉date,時間戳轉字串 用法,方便日後學習和查閱 date format date,format 函式,mysq...

mysql時間與字串相互轉換

時間 字串 時間戳之間的互相轉換,即 date轉字串 date轉時間戳 字串轉date 字串轉時間戳 時間戳轉date,時間戳轉字串 date format date,format 函式,mysql日期格式化函式date format unix timestamp 函式 str to date st...