iOS 關於NSDate的一些記錄

2021-08-08 02:08:01 字數 3303 閱讀 6770

markutc和gmt時間

時間用例:2015-01-11 11:11:11

1.時間戳

//現在時間

nsdate *date = [nsdate date];

//從2023年到date的時間間隔(秒數)

double interval = date.timeintervalsince1970;

//一般我們使用的時間戳精確到毫秒

long

long timestamp = interval*1000;

//將時間戳轉換為時間

nsdate *tmpdate = [nsdate datewithtimeintervalsince1970:timestamp/1000];

有時候可能會用到這幾個

//從當前時間到date的秒數

double interval1 = date.timeintervalsincenow;

//從2001/01/01到date的秒數

double interval2 = date.timeintervalsincereferencedate;

//兩個時間之間的間隔

double interval3 = [date2 timeintervalsincedate:date1];

//間隔的天數

int days=((int)interval3)/(3600*24);

2.時間格式化工具nsdateformatter

nsdate轉nsstring

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

//自定義想要輸出的格式

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

//轉換成字串

nsstring *datestring = [dateformatter stringfromdate:date];

nsstring轉nsdate

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

//設定字串顯示的格式

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

//轉換成nsdata

nsdata *date = [dateformatter datefromstring:datestring];

設定格式時主要英文本母的意義:

yy: 年的後2位  

yyyy: 完整年

mm: 月

dd: 日

aa: 上午/下午,am/pm

hh: 時、24小時制

hh: 時、12小時制

mm: 分

ss: 秒

sss: 毫秒

z: 時區 eg:+0800

常見的日期顯示格式:

2015-01-11

11:11:11 @"yyyy-mm-dd hh:mm:ss"

2015-01-11t11:11:11 +0800 @"yyyy-mm-dd't'hh:mm:ss z"

將nsdate轉換成字串顯示還可以用系統提供的兩個方法:setdatestyle與setdatestyle

//

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

//設定顯示style

[dateformatter setdatestyle:nsdateformattershortstyle];

[dateformatter settimestyle:nsdateformatternostyle];

nsstring *datestring = [dateformatter stringfromdate:date];

各種style下的顯示形式:

//各種style下的顯示形式

nsdateformatternostyle 1/11/15, 11:11 am

nsdateformattermediumstyle jan 11, 2015, 11:11:11 am

nsdateformatterlongstyle january 11, 2015

at11:11:11 am gmt+8

nsdateformatterfullstyle sunday, january 11, 2015

at11:11:11 am china standard time

3.時區nstimezone

nsdate沒有時區的屬性,所以如果列印出date為:2015-01-11 03:11:11 +0000

nsdateformatter是有時區屬性的,所以用它轉換nsdate的時候可以設定時區;

//

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

//utc標準時區

nstimezone *timezone = [nstimezone timezonewithname:@"utc"];

[dateformatter settimezone:timezone];

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

nsstring *datestring = [dateformatter stringfromdate:fromdate];

//輸出時間為:2015-01-11 03:11:11

//預設時區(本地時區/系統時區)

nstimezone *timezone1 = [nstimezone defaulttimezone];

nstimezone *timezone2 = [nstimezone systemtimezone];

nstimezone *timezone3 = [nstimezone localtimezone];

//輸出時間為:2015-01-11 11:11:11

一些NSDate的簡單使用

object c基礎語法nsdate,主要學習nsdate的設定 獲取當前時間 當前時間加減秒後的時間 日期比較 日期轉換成nsstring等 xcode4.6.3,os x sdk 10.8 nsdate日期操作,獲取當前日期,日期比較,日期格式,日期推算,時差解決辦法等 一 nsdate初始化 ...

ios關於retainCount的一些疑問

main.m檔案裡 void test1 student stu void test2 student stu int main int argc,const char argv return 0 執行結果是這樣的 2016 01 24 22 29 01.563 oc5記憶體管理 501 22465...

關於iOS一些常量定義的技巧

1,字元常量和基本資料常量 首先明確一下關於const的修飾問題 const 型別 變數名 可以改變指標的指向,不能改變指標指向的內容.型別 const 變數名 可以改變指標指向的內容,不能改變指標的指向。也就是說const總是修飾右邊的東西。關於nsstring 應使用如下形式 nsstring ...