我遇到了时间选择器的问题,无法弄清楚我的问题是什么。这是我的代码;
timePicker.timeZone = [NSTimeZone localTimeZone];
NSDate *selected = [timePicker 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];
例如,如果我选择下午2:55的时间,警报将返回" 2012-08-14 19:55:37 + 0000"
它必须是超级简单的东西才能看到它
答案 0 :(得分:4)
NSDate没有时区概念。它只存储中性时间信息。因此,您必须更正输出以进行补偿。
您可以创建NSDateFormatter的实例,然后设置TimeTime:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"..."];
//Timezone!
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"..."]];
NSString *dateSting = [dateFormatter stringFromDate:myDate];
答案 1 :(得分:0)
您需要在UTC和您所在的国家/地区时区之间添加时间间隔差异:
(sender.date as NSDate).addingTimeInterval(TimeInterval(NSTimeZone.local.secondsFromGMT()))