3

今日の私の質問は、日付の形式と文字列についてです。私のアプリケーションは、インターネットから日付を表すいくつかの文字列をダウンロードします。日付形式は常に次のようになります: "2010-05-24 at 20:45" 日付操作を実行するには、この文字列を NSDate オブジェクトに変換する必要があります。私はこのコードを試しました:

NSString * dateString = @"2010-05-24 at 20:45" // actually downloaded from the internet
NSDateFormatter * myDateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm"];
NSDate * dateFromString = [myDateFormatter dateFromString:dateString];

iPhone が 24 時間制に設定されている限り、これは問題なく動作するようです。一般設定で12時間クロックに切り替える限り、NSDateオブジェクトは作成されません(そしてアプリケーションは幸いにもクラッシュします)。同様の問題を抱えている他の人を読みましたが、解決策が見つからないようです. ここで質問: 文字列を解析するために使用する形式を指定している限り、NSDateFormatter がユーザー設定に敏感であることは私には意味がありません (これは Web から来ているため変更できません)。ユーザー設定を確認することの用途は何ですか? さらに重要なのは、タスクを実行するにはどうすればよいですか (ユーザー設定に関係なく、文字列から NSDate オブジェクトを取得するため)。

4

3 に答える 3

5

これは、この問題の背後にある理由とそれを解決する方法を説明しています。

于 2010-11-04T18:56:12.123 に答える
4
NSString * dateString = @"2010-05-24 at 20:45" // actually downloaded from the internet
NSDateFormatter * myDateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setDateFormat:@"yyyy-MM-dd 'at' hh:mm"];
NSDate * dateFromString = [myDateFormatter dateFromString:dateString];

日付形式の設定で「HH」の代わりに「hh」を使用する

于 2011-04-28T04:38:19.673 に答える