NSDate相差8個小時

2021-07-30 17:28:23 字數 2526 閱讀 8182

直接看**,有詳細的注釋可以知道具體怎麼用:

[objc]view plain

copy

nsdate

* date = [nsdate

date

];  

nslog(@"date:%@"

, date);  

nsdateformatter

* outputformatter = [[nsdateformatter

alloc

]init

];  

[outputformattersetlocale

:[[nslocale

alloc

]initwithlocaleidentifier

:@"en_us"

]];  

nstimezone

* timezone = [nstimezone

timezoneforsecondsfromgmt:8

8*3600

];//直接指定時區

[outputformattersettimezone

:timezone];

//這裡指定不指定時區並沒有什麼用

[outputformattersetdateformat

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

];  

nsstring

* outputdate = [outputformatter

stringfromdate

:date];  

nslog(@"outputdate:%@"

, outputdate);  

//這裡處理8個小時時間差問題,下面這三句可以解決相差8個小時問題

nstimezone

* zone = [nstimezone

systemtimezone

];  

nsinteger interval = [zonesecondsfromgmtfordate

:date];  

nsdate

* nowdate = [date

datebyaddingtimeinterval

:interval];  

nslog(@"nowdate:%@"

, nowdate);  

//所以,nsdate轉字串和直接使用nsdate的時候一定要注意,轉字串的時候不用處理差8個小時問題,直接用nsdate的時候需要處理相差8個小時的問題

nsdateformatter

* outputformatter

1= [[nsdateformatter

alloc

]init

];  

[outputformatter1

setdateformat

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

];  

nsstring

* outputnowdate = [outputformatter

1stringfromdate

:nowdate];  

nslog(@"outputnowdate:%@"

, outputnowdate);  

//使用outputformatter輸出的時候總是和nsdate相差8個小時

輸出:[objc]view plain

copy

2016

-04-

2016:

54:4

2.286

date1[

1655

7:63

7727

6]date:2

016-

04-2

008:5

4:42

+000

0201

6-04

-2016

:54:

42.287

date1[

1655

7:63

7727

6]outputdate:2

016-

04-2

016:5

4:42

2016

-04-

2016:

54:4

2.288

date1[

1655

7:63

7727

6]nowdate:2

016-

04-2

016:5

4:42

+000

0201

6-04

-2016

:54:

42.288

date1[

1655

7:63

7727

6]outputnowdate:2

016-

04-2

100:5

4:42

希望你可以通過上面的**,解決相差8個小時問題。

轉於:

NSDate相差8個小時問題

直接看 有詳細的注釋可以知道具體怎麼用 nsdate date nsdate date nslog date date nsdateformatter outputformatter nsdateformatter alloc init outputformatter setlocale nsloc...

雙系統,Ubuntu時間不對,相差8個小時

從伺服器上同步時間 sudo ntpdate ntp.ubuntu.com sudo ntpdate time.nist.gov 設定電腦的時區為上海 sudo cp usr share zoneinfo asia shanghai etc localtime xp 和 ubuntu 相差了 8 小...

PHP date函式時間相差8個小時解決辦法

php中date時間相差8個小時的解決辦法 在windows上,在預設的php配置下,date函式返回的時間值和當地時間總是相差8小時,即顯示的是格林威治時間。解決方案是正確設定php的時區環境。php的時區環境通過一組特定的字串指定。參見php所支援的時區列表。最省事的辦法是在php.ini檔案中...