1

私は、ユーザーが設定した時間にローカル通知を起動したいアプリに取り組んでおり、正しい時間を取得する際に問題に直面しているだけなので、私がしていることは次のとおりです。

NSDateFormatter *current = [[NSDateFormatter alloc] init];
[current setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[current setDateFormat:@"HH:MM:SS"];
NSDate *systemTime = [NSDate date];
[current setTimeZone:[NSTimeZone systemTimeZone]];

NSLog(@"Current time %@" ,[current stringFromDate:systemTime]);
temp = [timeSetter date];//this temp is NSDATE object

NSLog(@"USer time %@" ,[current stringFromDate:temp]);
value = [temp timeIntervalSinceDate:systemTime];//This value is Nstimeinterval instance/obj.

そして、NSLogを介してこれを印刷すると、これらは私が受け取った結果ですこれで、23.11.31.323 が実際のシステム時間で、23.02.32 を取得できます。 助けてください、よろしくお願いします

4

1 に答える 1

1

コードを実行したところ、同様の結果が再現されました。あなたの問題は-setDateFormat:方法にあります-それはそうあるべきです[current setDateFormat:@"HH:mm:ss"]-これは私にとってはうまくいきます。日付形式の文字列では、M =月(02 = 2月)、m =分、S =秒の小数部、s=秒です。

日付のフォーマットに関するAppleのドキュメントを見ると、フォーマット文字列がUnicode標準で決定されていることがわかります。それらはさまざまなバージョンにリンクしています。最新のものはここにあります

于 2013-02-16T22:29:56.237 に答える