2012-05-04 113 views
0

我是iWorld的iOS開發人員。 我以前開發過幾款iPhone/iPad應用程序。 我無法在iPhone上多次獲取正確的時間信息。我認爲這是由於本地化。獲取沒有時間部分或時區差異的時間

例如,我有代碼來獲取今天的時間截斷。 (例如:「05-04-2012 00:00:00」) 但是這段代碼總是在8小時前返回到我的預期。 (比如:「2012年5月3日16:00:00) 的代碼,我工作表現如下

NSDate *today = [NSDate date]; 
NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *components = [calender components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today]; 
today = [calender dateFromComponents:components]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MM-dd-yyyy hh:mm:ss"]; 
NSString *todayString = [formatter stringFromDate:today]; 
NSLog(@"Today is %@", todayString); 

我想聽聽您的意見,以解決此問題 感謝。 。你的時間

+0

那你幾點預計;當地時間或UTC? – trojanfoe

+0

我想知道要知道正確的午夜時間。因爲我必須將日期與數據庫日期進行比較。例如,今天我必須找到05-04-2012 00:00:00和05-05-2012 00:00:00之間的記錄。 – Pei

+0

那麼你想本地時間或UTC? – trojanfoe

回答

0

我發現代碼,計算正確的深夜時段 現在我發現下面的代碼日誌「今天是2012年5月7日00:00: 00「而非」05-06-2012 16:00:00「

NSDate *today = [NSDate date]; 
NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *components = [calender components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today]; 
today = [calender dateFromComponents:components]; 

today = [today dateByAddingTimeInterval:[[NSTimeZone localTimeZone] secondsFromGMT]]; 

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MM-dd-yyyy hh:mm:ss"]; 
NSString *todayString = [formatter stringFromDate:today]; 
NSLog(@"Today is %@", todayString); 

謝謝你。

0

設置時區爲UTC

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
    [dateFormatter setTimeZone:timeZone]; 
+1

他想當地時間,所以應該使用[NSTimeZone localTimeZone] – lnafziger

+0

哦,沒有讀得夠多。是的,lnafziger說。 –