2012-06-12 190 views
1

我正在研究一個iPad應用程序,該應用程序對我構建的用於與數據庫進行通信的私有PHP API進行說話。這個API必須傳輸三個日期,一個開始時間,一個結束時間和當前時間。NSDate語言環境問題

我想測試當前時間是否在日期範圍之間。所以我把時間(比如16:50:00),並將其轉換成NSDates:

NSDateFormatter *former = [[NSDateformatter alloc] init]; 
[former setDateFormat:@"HH:mm:ss"]; 
[former setLocale:[NSLocale currentLocale]]; 

NSDate *fromDate = [former dateFromString:@"10:15:00"]; 
NSDate *nowDate = [former dateFromString:@"13:25:00"]; 
NSDate *toDate = [former dateFromString:@"16:30:00"]; 

當我現在用NSLog(@"\n%@\n%@\n%@", fromDate, nowDate, toDate);我看到的語言環境是不正確記錄的日期。

看來NSDateFormatter只是忽略了區域設置。我也記錄了currentLocales標識符是正確的(「de_DE這個」在我的情況「),該區域仍然+0000。

我怎樣才能解決這個問題?謝謝,與親切的問候,朱利安

回答

2

好吧,我已經去除了以前的回答,請嘗試以下

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
NSTimeZone *zone = [NSTimeZone localTimeZone]; 
[formatter setTimeZone:zone]; 
[formatter setDateFormat:@"HH:mm:ss"]; 

NSDate *date = [formatter dateFromString:@"10:15:00"]; 

NSLog(@"Time %@",[formatter stringFromDate:date]); 
+0

嘿,謝謝!了'date'得到了錯誤的時間,雖然它看起來像的NSDate不能有正確的語言環境,因爲它仍然+0000奇怪的行爲,但一個堅實的解決方法。謝謝! –

+1

很高興它幫助! – Breakpoint