2012-04-09 13 views
-1

から日付を変換私はこの内容でNSStringの形式で日付を持っていますNSDateFormatterエラー文字列

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"dd/MM/yyyy hh:mm:ss"]; 

ただし、dateFromString:メソッドを使用すると、null値が返されます。

私が紛失していることはありますか?

ありがとうございました。

-EDIT-

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"dd/MM/yyyy hh:mm:ss a"]; 

    NSLog(@"INFO -> Test Date: %@",[df dateFromString:testQuestions.endDate]); 
    NSLog(@"INFO -> Test Date String: %@",testQuestions.endDate); 

    if ([[df dateFromString:testQuestions.endDate] earlierDate:[NSDate date]]) 
    { 
     currentTestIsBeingSolved = NO; 
    } 

ログイン:@trudyscousinとして

2012-04-09 22:15:29.073 Otsuka On[27184:707] INFO -> Test Date: (null) 
2012-04-09 22:15:31.816 Otsuka On[27184:707] INFO -> Test Date String: 29/02/2012 12:00:00 AM 

EDIT--

私は新しいプロジェクトを開始しました提案とそのコメントを追加しました:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"dd/MM/yyyy hh:mm:ss a"]; 

    NSLog(@"INFO -> Test Date: %@",[df dateFromString:@"29/02/2012 12:00:00 AM"]); 
... 

今はnullになっていませんが日付は同じではありません:

2012-04-09 22:26:19.189 TestDate[54705:207] INFO -> Test Date: 2012-02-28 23:00:00 +0000 

日付はどうなっていますか?

Xcodeの任意の設定ですか?

ありがとうございました。

+0

GMTで表示されているため、直接印刷された日付はオフに見えます(文字列の最後にタイムゾーン「+ 0000」があることに注意してください)。以下の質問のいずれかを参照してください:http://stackoverflow.com/search?q=%5Bobjc%5D+nsdate+off –

答えて

3

"AM"であなたの日付と時刻に接尾辞を付けるという事実は、それを行うことです。

@"dd/MM/yyyy hh:mm:ss a" 
+0

こんにちは、答えに感謝します。私はあなたが示唆したようにフォーマットを使用しましたが、私はまだnullになっています。 – NemeSys

+2

@NemeSys:追加された書式指定子を使用してコードを実行し、日付を取得できました: 'NSDateFormatter * df = [[NSDateFormatter alloc] init]; [df setDateFormat:@ "dd/MM/yyyy hh:mm:ss a"]; NSDate * foo = [df dateFromString:@ "29/02/2012 12:00:00 AM"]; – trudyscousin

+0

私はすべてを2度チェックしても、まだ私のために働いていません。あなたのコードが正しいので、私は理解できません、なぜ私のために働いているのかわかりません。 – NemeSys