0

iPhoneでdatepickerプログラムを構築しようとしていました。ただし、テキストに表示されている時間は、選択した時間よりも正確に 8 時間前です。これがコードです。

"h"ファイル:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController{
    UIDatePicker *datepick;
    IBOutlet UILabel *label;
    IBOutlet UITextField *textfield; 
}
-(IBAction)button;
@property (nonatomic, retain)IBOutlet UIDatePicker *datepick;
@end

"m"ファイル:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize datepick;

-(IBAction)button {
    NSDate *choice = [datepick date];
    NSString *words = [[NSString alloc]initWithFormat:@"The date is %@", choice];

    UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"the title" message:words
    delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
    [alert show];
    label.text = words;
    textfield.text = words;
}
4

2 に答える 2

1

選択した日付をローカル タイムゾーンに変換する

NSDate *choice = [datepick date];

NSDateFormatter *dateFormat = [[NSDateFormatter new] autorelease];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setDateFormat:@"yyyy-MM-dd h:mma"];

NSString *strDate = [dateFormat stringFromDate:choice];
于 2012-06-14T19:01:39.453 に答える
0

あなたのコメントを読むと、何も問題はありません。予想とは異なるタイムゾーンが表示されているだけです。NSDate から文字列へのデフォルトは GMT/UTC 時間になります。

NSDateFormatter を使用して、出力されるタイムゾーンを制御します: NSDateFormatter の Apple ドキュメント

于 2012-06-14T19:00:39.363 に答える