UIDatePicker提前8小时

时间:2012-06-14 18:37:25

标签: iphone objective-c uidatepicker release-management

我试图在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;
}

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

从阅读你的评论,没有什么不对,它只是显示一个不同于你预期的时区。 NSDate到字符串默认为GMT / UTC时间。

使用NSDateFormatter控制输出的时区:Apple Documentation for NSDateFormatter