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 ...