2011-10-24 13 views
1

私はいつもiPhoneアプリでNSDateと闘っています。私は米国のクライアントのための1つの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

私は自分のコードで行の上に使用していたが、それは構造体のNSString *「を割り当てる不完全なObjective-Cのタイプ 『のような1回の警告を示す使用してみてください』、予想 『』 NSDateFormatterをストラクト。これは私が試した、 –

+0

NSString * dateComponents = @ "MMM d yyyy"; NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; // [DateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@ "en_GB"] autorelease]]; //この行も試してみましたが、私は今でも24.10.2011米国でも同様に動作していることを知っていません。 dateFormatter = [NSDateFormatter dateFormatFromTemplate:dateComponentsオプション:0ロケール:[NSLocale currentLocale]]; //この行の後にクラッシュした後にクラッシュするアプリケーション [dateFormatter setDateStyle:NSDateFormatterBehaviorDefault]; [dateFormatter setDateFormat:@ "MMM d yyyy"]; –

+0

アドバイスいただきありがとうございます、私は私のコードから@ "en_GB"という行を削除します。最後に変更されたコードを適用しましたが、同じ警告とアプリがクラッシュすることも示しています。私はあなたが私の問題を解決できることを願っています。私のレベルを最善にしようとしています。どうもありがとう。 –

1

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

私の友人にありがとう。私は疑問がもう1つあります。それは他の国のユーザーでも使えますか?疑いを明確にしてください。 –

関連する問題