2011-01-20 14 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); 
相关问题