0

次の方法で日付をフォーマットすると:

[NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle]];

どこかに保存してからアクセスしようとすると、NSString が得られます。NSDateとして取得するには?

ところで: NSDateFormatterStyle を引数として入れるメソッドが必要です。それ以外の場合は間違っています-別のロケールでは別の文字列として保存されるため、次のようにフォーマットします

[dateFormat setDateFormat:@"yy/MM/dd"];

またはこの種の他のオプション - エラーが発生します。または、少なくとも私はそう思います;)。返信ありがとうございます。

4

2 に答える 2

1

NSDateFormatter は、NSDate オブジェクトの NSString 表現を返します。NSDate は形式に依存しません。つまり、特定のロケールに関連付けられておらず、実際には数値として格納されます。NSDateFormatter を使用して、その数値をローカライズされた表現として表示します。

NSString を NSDate に変換するには、次のようなものを使用できます。

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yy/MM/dd"];
NSDate *myDate = [df dateFromString: dateString];
于 2013-02-22T14:52:00.123 に答える
0

両方の方法で完全に解析できる方法で NSDate を保存したいようです。その場合は、ISO8601 の日付として保存することをお勧めします。これを行うには、よりカスタムのような nsdateformatter を使用する必要があります。github や stackoverflow には、役立つライブラリやカテゴリがたくさんあります。

于 2014-04-16T19:10:21.530 に答える