如何在iPhone应用程序中显示设备日期和时间?

时间:2011-10-24 05:13:47

标签: iphone date

我总是在iphone应用程序中与NSDate挣扎。我为美国客户开发了一款iphone应用程序。该应用程序应显示今天的日期。我在我的应用程序中使用了以下代码。这个日期对我来说是正确的(Am in India)。但是,该日期还显示了我(美国)客户的印度日期。我想从iphone / ipad设备上显示日期。

    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个小时来解决我的问题但是,我找不到答案?请帮我。感谢您花时间与我共度。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

尝试使用

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