- (IBAction) buttonPressed {
NSDate *selected = [datePicker date];
NSString *message = [[NSString alloc] initWithFormat:@"The date and time you selected is: %@", selected];
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Date and Time Selected" message:message delegate:nil cancelButtonTitle:@"Yes, I did!" otherButtonTitles:nil];
[alert show];
[alert release];
[message release];
所以我的问题是下一个......如何在Objective C中使用Datepicker指定时区? 现在,如果我从DatePicker中选择一些值并按下显示警报的按钮 - 时间错误。这可能是因为时区不正确,但我不确定。那么任何想法都会很棒。在下面的图片中你可以看到我选择了下午2:14(14:14),但是一个更改说它是11:14并且时区是+000
更新1 我在代码中添加了一些更改,但仍然没有...
- (IBAction) buttonPressed {
NSDate *selected = [datePicker date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *tz = [NSTimeZone systemTimeZone];
[dateFormatter setTimeZone:tz];
NSString *formattedDate = [dateFormatter stringFromDate:selected];
NSString *message = [[NSString alloc] initWithFormat:@"The date and time you selected is: %@", formattedDate];
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Date and Time Selected"
message:message delegate:nil cancelButtonTitle:@"Yes, I did!" otherButtonTitles:nil];
[alert show];
[alert release];
[message release];
[dateFormatter release];
答案 0 :(得分:15)
在用户定义你的datepicker
时使用它datePicker.timeZone = [NSTimeZone localTimeZone];
答案 1 :(得分:4)
您可以使用时区设置日期
目标C
datePicker.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:10*60*60]; // Like GMT+10
Swift 3中的:
datePicker.timeZone = TimeZone(secondsFromGMT: 5*60*60) // Like GMT+5
答案 2 :(得分:2)
您可以使用Australia/West (+08:00) , WST, Asia/Kolkata (+05:30)
,IST
datePicker.timeZone = [NSTimeZone timeZoneWithName:@"timezone string goes here"] ;
答案 3 :(得分:2)
在Swift 3中:
datePicker.timeZone = NSTimeZone.local
答案 4 :(得分:1)
我认为这是因为选择了日期格式,使用NSDateFormatter指定适当的日期格式并在字符串中使用它,这是一个链接Link