1

私は次の目的のCコードを持っています:

 NSString *dateStr = @"2012-09-21 05:00:00";

// Convert string to date object
NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
[formatter2 setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *dateNew = [formatter2 dateFromString:dateStr];  
//NSLog(@"date new %@" , [dateNew description]);

NSDate *dateConverted = [dateNew dateByAddingTimeInterval:interval];
//NSLog(@"date converted=%@",dateConverted);

NSString *dateConvertedStr = [formatter2 stringFromDate:dateConverted];
NSLog(@"date conv str=%@",dateConvertedStr);

ここで、最初に日付文字列を日付オブジェクト(dateNew)に変換しようとしています。次に、新しい dateConverted を取得するために間隔が追加されます。最後に、この日付オブジェクトは再び文字列に変換され、出力されます。しかし、私は望ましい結果を得ていません。例: 特定の日付文字列の場合、間隔が 45000.00 の場合、基本的には 12.5 時間です。したがって、私の dateConvertedStr は「2012-09-21 17:30:00」を与えるはずです。しかし、それは望ましい結果をもたらしていません。誰でも提案できますか。私は何かが欠けていますか。前もって感謝します。

4

1 に答える 1

1

ここでの問題は、指定する書式文字列です。あなたの例では(間隔が であると仮定すると)、 12hベースの形式を使用45000.00fしているため、返されます。date conv str=2012-09-21 5:30:00

代わりにこれを試してください(大文字に注意してくださいH):

[formatter2 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

そして今、あなたdateConvertedStr2012-09-21 17:30:00期待通りです。

于 2012-09-21T14:12:41.150 に答える