2011-01-20 45 views
2

嗨全部 我在India.And我已經使用下面的代碼來獲取當前日期。爲什麼[NSDate date]返回的時間與我目前的時間有所不同?

[NSDate date] 

它顯示「2011-01-20 6點51分35秒+0000」,但實際時間是「2011-01-20 12時21分35秒+0000」 。請告訴我怎麼去當前日期。

在此先感謝

+4

沒有,實際時間是2011-01-20六時51分35秒+0000和你本地時間的當前日期和區別2011-01-20 12:21:35 +0530。您的本地時間將會/從未/爲+0000,因爲這是GMT – 2011-01-20 07:17:01

+1

如果有幫助,您應該接受該答案,以便鼓勵開發人員幫助開發人員... – Aditya 2011-01-20 08:47:57

+0

我應該假設[NSDate date]以GMT0返回當前日期和時間? – 2013-06-12 09:41:14

回答

6

您需要使用日期格式化這個purpose.Below針對該示例代碼。

NSDate *testDate=[NSDate date]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MM DD YY hh:mm"];//You can set your required format here 
NSString *dt = [formatter stringFromDate:testDate]; 
[formatter release]; 

NSString *strDateTaken=dt; 

乾杯

3

什麼是「實際時間」是什麼意思?當前時間在你的時區?考慮到時間價值,我猜測第一個是格林尼治標準時間,你想要IST(+5:30)。 (請參閱Wikipeda上的Time zones。)取決於您想要對日期做什麼 - 如果您只想在當前時區中格式化日期和時間,則Aditya的答案應該可行。

0

找到當前的日期和給定的日期......其工作代碼

NSDate *testDate=[NSDate date]; 
NSDateFormatter *formatterNew = [[NSDateFormatter alloc] init]; 
[formatterNew setDateFormat:@"dd-MM-yyyy HH:mm:ss "]; 
NSString *dt = [formatterNew stringFromDate:testDate]; 
NSString *strDateTaken=dt; 
NSLog(@"Date=%@",strDateTaken); 
[formatterNew release]; // This line can be removed if you are using ARC 

NSDateFormatter *tempFormatter = [[[NSDateFormatter alloc]init]autorelease]; 
[tempFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 
NSDate *toDate = [tempFormatter dateFromString:strDateTaken]; 
NSLog(@"Current Date ==%@",toDate); 

NSDateFormatter *tempFormatter1 = [[[NSDateFormatter alloc]init]autorelease]; 
[tempFormatter1 setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 
NSDate *startdate = [tempFormatter1 dateFromString:@"30-08-2011 16:25:00"]; 
NSLog(@"Last Date ==%@",startdate); 

int i = [startdate timeIntervalSince1970]; 
int j = [toDate timeIntervalSince1970]; 
double X = j-i; 
int days=(int)((double)X/(3600.0*24.00)); 


NSLog(@" Difference :%d",days); 
相關問題