2011-10-24 30 views
1

总是我在iphone应用程序的NSDate挣扎。我为美国客户开发了一款iPhone应用程序。该应用程序应该显示今天的日期。我在我的应用程序中使用了以下代码。日期显示正确(我在印度)。但是,该日期还显示了我在美国的客户的印度日期。我想显示从iPhone/iPad设备的日期。如何在iPhone应用程序中显示设备日期和时间?

NSDate *today1 = [[NSDate alloc] init]; 

NSString *dates = [NSString stringWithFormat:@"%@",[today1 description]]; 
dates = [dates substringToIndex:10]; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateStyle:NSDateFormatterBehaviorDefault]; 
[dateFormat setTimeZone:[NSTimeZone localTimeZone]]; 
[dateFormat setDateFormat:@"yyyy-MM-dd"]; 
NSDate *date = [dateFormat dateFromString:dates]; 

如何做到这一点?任何建议/示例代码来解决这个问题?我花了6个小时来解决我的问题,但是,我没有找到答案?请帮帮我。感谢您花费宝贵的时间陪伴我。

回答

4

使用区域设置 查看代码的打击来自here

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
NSLocale *gbLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"]; 

NSString *dateFormat; 
NSString *dateComponents = @"yMMMMd"; 

dateFormat = [NSDateFormatter dateFormatFromTemplate:dateComponents options:0 locale:usLocale]; 

更新答案两者低于

我已经测试这应该开箱任何地方是世界的。

NSDate *date = [NSDate date]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd"]; 
[dateFormat setLocale:[NSLocale currentLocale]]; 
NSString *dateString = [dateFormat stringFromDate:date]; 
[dateFormat release]; 
NSLog(@"Date: %@:", dateString); 
+0

我上面一行用在我的代码,但它显示一个警告,如“不完全的Objective-C型分配‘结构的NSString *’,预期‘结构NSDateFormatter’。这是我试过, –

+0

NSString * dateComponents = @“MMM d yyyy”; NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init] autorelease];我试过这一行,我不知道它工作正常,因为现在在美国也是24.10.2011 .. dateFormatter = [NSDateFormatter dateFormatFromTemplate:dateComponents options:0 locale:[NSLocale currentLocale]]; //应用程序在通过此行后崩溃后崩溃 [dateFormatter setDateStyle:NSDateFormatterBehaviorDefault]; [dateFormatter setDateFormat:@“MMM d yyyy”]; –

+0

感谢您的建议,我会从我的代码中删除行“@ en_GB”。我应用了您最后修改的代码,但它也显示了相同的警告和应用程序崩溃。我希望你能解决我的问题。我也尝试最好的水平。非常感谢。 –

1

尝试使用

[dateFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; 
+0

谢谢你,我的朋友。我还有一个疑问,它可以在其他国家的用户中使用吗?你能澄清我的疑问吗? –

相关问题