2016-07-16 20 views
-2

簡単な質問、迷惑な問題。 私は時間を選択する日付ピッカーを持っています(例えば、午前11時)。次に、その時間をコンソールに表示するメソッドに接続されたボタン。文字通り、わずか5行のプロジェクト。コンソールに印刷された時間は、私が設定した時間に一時間早く表示されます(つまり、午前11時に設定すると、午前10時にそれが表示されます)。私のMacのタイムゾーンが正しく設定されて、時計が正しい時刻を表示します。私はStack Overflowを見て、NSCalendarやコンポーネントなどを含む非常に長い回答を見たことがありますが、これは一行のものでなければならないと確信しています。私がマカオを降りる前に助けてください。ありがとうNSDateの日付メソッドが間違った時刻を返す

--------------------------------------------- ------------------ EDIT ------------------------------- -------------------------------

[OK]を私はそれがはっきりさせるかどうかを確認するいくつかのコードを投稿します:

- (IBAction)setReminder:(id)sender{ 

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; 
    NSString *dateString = [formatter stringFromDate:self.datePicker.date]; 


    NSLog(@"Setting a reminder for: %@", dateString); 

    NSDate *date = [formatter dateFromString:dateString]; 

    NSLog(@"another proof that date is right: %@", date); 

    UILocalNotification *note = [[UILocalNotification alloc]init]; 
    note.alertBody = @"This is a reminder!"; 
    note.fireDate = date; 

    [[UIApplication sharedApplication] scheduleLocalNotification:note];} 

最初のNSLogは、右の時間を返しますが、2番目のNSLogは時間早い時間が日付ピッカーを使用して設定することを返すので、通知がトリガされることはありません。私は間違って何をしていますか? tx

+2

私たちにあなたが試してみるコードを表示してくださいあなたを助けることになります。 –

+0

ええ、試したコードを投稿してください!! – Lion

+0

私はいくつかのコードでテキストを編集しました。 – Paul

答えて

0

日付ピッカーは、Dateを常にUTCで返します。

dateformatterを作成して文字列を取得すると、予想される時間が表示されます。

-1

これを使用してください

NSDateFormatter *formattor=[[NSDateFormatter alloc]init]; 
[email protected]"yyyy-MM-dd HH:mm:ss"; 
NSString *date_string=[formattor stringFromDate:self.datePicker.date]; 
NSLog(@"%@",date_string); 
+0

これは私が試した良いスタートですが、日付自体はまだ1時間早いです。 Pzは編集を見ます。 – Paul

関連する問題