iOS開發 NSDate時區與格式化問題

2021-06-29 00:20:58 字數 1163 閱讀 1501

今天做到datepicker,乙個按鈕彈出選擇的日期時間,預設的nsdate date的顯示的是格林威治標準時間gmt,在中國肯定不適用,所以要轉換為中國時區+8,然後也接觸到ios中的日期時間格式化。

//取datepicker選擇的日期時間

nsdate *date = [datepicker date];

//時區轉換,取得系統時區,取得格林威治時間差秒

//nstimeinterval timezoneoffset=[[nstimezone systemtimezone] secondsfromgmt];

//nslog(@"%f",timezoneoffset/60.0/60.0);

//date = [date datebyaddingtimeinterval:timezoneoffset];

//格式化日期時間

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

[dateformatter setdateformat:@"現在日期:yyyy年mm月dd日 \n 現在時刻: hh:mm:ss "];

nsstring * datestr=[dateformatter stringfromdate:date];

//警告彈出

nsstring * strdate = [[nsstring alloc] initwithformat:@"%@",datestr] ;

uialertview * tip = [[uialertview alloc] initwithtitle:@"選擇時間" message:strdate delegate:self cancelbuttontitle:@"確定" otherbuttontitles: nil];

[tip show];

[tip release];

//清理

[dateformatter release];

這裡有點疑惑的是,不加上時區轉換的**,就只有格式化日期都可以自動轉換為+8時區,這是為什麼呢?

關於格式化日期的格式字串就不用說了很簡單,yyyy代表年,m代表月,d代表幾號,hh小時,mm分鐘,ss秒,這裡要提的一點是這個是區分大小寫,個數不同結果也不同,在一位的時候,比如dd是09,而d就是9。

iOS開發 NSDate獲取當前時區時間

nsdate date預設顯示的是格林尼治所在地的標準時間 gmt 轉換為中國時區需要加上八個小時,針對與這個情況你可以直接在獲取時間之後加上八個小時,也可以轉換到當前時區,都很簡單,參考如下 nsdate date nsdate date nslog 格林尼治時間 date nsinteger i...

iOS開發 NSDate獲取當前時區時間

nsdate date預設顯示的是格林尼治所在地的標準時間 gmt 轉換為中國時區需要加上八個小時,針對與這個情況你可以直接在獲取時間之後加上八個小時,也可以轉換到當前時區,都很簡單,參考如下 nsdate date nsdate date nslog 格林尼治時間 date nsinteger i...

ios軟體開發 NSDate

1 nsdate 時間格式 2 nstimeinterval 時間間隔 3 nsdateformatter 時間格式器用於日期物件的格式化或者字串解析為日期物件 時間格式 nsdate 1 獲取gmt時間 nsdate date nsdate date 2 時間間隔 nstimeinterval 3...