我住在印度,格林威治標準時間爲+5.30小時。當我打印系統時間時,它會顯示當前時間。但是當我使用這個代碼時,使用了GMT時間!NSDate返回格林威治標準時間
代碼例如:
NSDate *now = [NSDate date];
NSDate *tomorrow = [now dateByAddingTimeInterval:24 * 60 * 60];
NSDate *dayaftertomorrow = [now dateByAddingTimeInterval:48 * 60 * 60];
NSLog(@"Tomorrow, the date will be %@" , tomorrow);
NSLog(@"Day after tomorrow, the date will be %@" , dayaftertomorrow);
系統時間現在是下午11點34分但控制檯打印出:
2013年6月5日23:35:02.577 PROG1 [1601:303]明天,日期將是2013年6月6日18時05分02秒 2013-06 -05 23:35:02.578 prog1 [1601:303]後天,日期將是2013-06-07 18:05:02 +0000
只是爲了闡明:單獨的NSDate對象代表線性時間中的某個時刻,與任何時區無關。當您打印或以其他方式在某處顯示時,它會打印出某個時區代表那一刻的日期和時間(例如,「格林威治標準時間,即6月6日18:05」)。如果您希望將其打印或顯示在特定時區(包括用戶的時區)中,請使用您設置爲使用該時區的日期格式化程序。 –