7

現在の日付をデータベースに保存するアプリケーションで作業していますが、アプリをアラビア語で実行すると、現在の日付形式がアラビア語に変更されます。つまり、日付形式はこの 09/02/2010 のようにする必要がありますが、数字はアラビア数字に変換されます。では、アプリがアラビア語で実行されている場合でも、それらを英語の数字に戻すにはどうすればよいでしょうか?

4

4 に答える 4

11

一般に、日付を不可知論的なタイプに保ち、表示する必要がある場合にのみフォーマットするのが最善です。一般的な形式は、1970 年以降の秒数、または選択した別の日付を保存することです。

たとえば、次のコードは、ローカルのユーザー向けに正しくフォーマットされた現在の時刻を表示します。

NSDate* now = [NSDate dateWithTimeIntervalSinceNow:0];
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
NSString* localDateString = [formatter stringFromDate];
[formatter release];

ただし、ロケール固有の形式の日付がある場合は、再びフォーマッタ クラスを使用して変換できます。例えば

NSString* localDate = @"09/02/2010";  // assume this is your string

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
NSDate* date = [formatter dateFromString: localDate];
[formatter release];

あらゆる種類のロケール固有のデータ (日付、通貨、測定値) を扱う場合は、フォーマッタ クラスが役に立ちます。

于 2010-02-09T09:06:31.087 に答える
6

私はここでそれを見つけました 私はこのようにしました

NSDate *CurrentDate = [NSDate date];
NSDateFormatter *Formatter=[[NSDateFormatter alloc] init];
NSLocale *indianLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[Formatter setLocale:indianLocale];
[Formatter setDateFormat:@"dd/MM/yyyy"];
NSString *FormattedDate=[Formatter stringFromDate:CurrentDate];
[indianLocale release];
[Formatter release];
于 2010-02-09T14:55:59.153 に答える
2

これを試して

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"EST"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:localDate];
于 2010-02-09T10:31:57.003 に答える