Ios 数据采集器时间
我有一个选择器和一个按钮。当我按下按钮时,我想在日志中显示消息“设置x提醒”,其中x是日期选择器显示的时间 每次我按下按钮,记录的时间正好比选择器显示的时间晚3小时(选择器显示的时间是我的当前时间)。我怀疑这和时区有关。我住在GMT+2时区(我想是+3,因为我们现在是夏令时) 你知道我如何使记录的时间与显示的时间相同吗 下面是我按下按钮时执行的方法。谢谢Ios 数据采集器时间,ios,objective-c,uidatepicker,Ios,Objective C,Uidatepicker,我有一个选择器和一个按钮。当我按下按钮时,我想在日志中显示消息“设置x提醒”,其中x是日期选择器显示的时间 每次我按下按钮,记录的时间正好比选择器显示的时间晚3小时(选择器显示的时间是我的当前时间)。我怀疑这和时区有关。我住在GMT+2时区(我想是+3,因为我们现在是夏令时) 你知道我如何使记录的时间与显示的时间相同吗 下面是我按下按钮时执行的方法。谢谢 - (IBAction)addReminder:(id)sender { [self.datePicker setTimeZone:[
- (IBAction)addReminder:(id)sender {
[self.datePicker setTimeZone:[NSTimeZone systemTimeZone]];
NSLog(@"Setting a reminder for %@", self.datePicker.date);
}
NSDate
是某个时刻的简单表示,它对您的本地时间一无所知。当您记录它(实际上,当说明
)消息被发送时,它使用GMT来显示自己
UIDatePicker
默认情况下使用您的时区(请参阅)
下面是它的工作原理:
- 您可以在DatePicker中选择一些时间,但除非您指定时区,否则时间毫无意义
- DatePicker使用您的本地(GMT+2)时区并为其创建
NSDate
- 您可以显示
,因为它对时区一无所知,所以它只显示为GMTNSDate
NSDateFormatter
。它具有时区属性:
您还可以使用NSCalendar
及其组件
您应该阅读本指南:因为日期、格式化程序和日历在Cocoa中不是很清楚,除非您理解它的概念。
NSDate
是某个时刻的简单表示,它对您的本地时间一无所知。当您记录它(实际上,当说明
)消息被发送时,它使用GMT来显示自己
UIDatePicker
默认情况下使用您的时区(请参阅)
下面是它的工作原理:
- 您可以在DatePicker中选择一些时间,但除非您指定时区,否则时间毫无意义
- DatePicker使用您的本地(GMT+2)时区并为其创建
NSDate
- 您可以显示
,因为它对时区一无所知,所以它只显示为GMTNSDate
NSDateFormatter
。它具有时区属性:
您还可以使用NSCalendar
及其组件
您应该阅读本指南:因为日期、格式化程序和日历在Cocoa中不是很清楚,除非您理解它的概念。试试这个
NSDate *now = [[NSDate alloc] init];
[self.datePicker setDate:now];
[self.picker setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:2*60*60]]; // GMT+2 Your timeZone
NSLog(@"Setting a reminder for %@", self.datePicker.date);
试试这个
NSDate *now = [[NSDate alloc] init];
[self.datePicker setDate:now];
[self.picker setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:2*60*60]]; // GMT+2 Your timeZone
NSLog(@"Setting a reminder for %@", self.datePicker.date);
与您的时区相反,模拟器时区也可能存在可能重复的问题。检查ios模拟器设置以了解更多信息模拟器上的时间与实时时间相同。我尝试在iOS模拟器上更改区域,结果完全相同。与您的时区相反,模拟器时区可能存在重复的问题。检查ios模拟器设置以了解更多信息模拟器上的时间与实时时间相同。我尝试在iOS模拟器上更改区域,结果完全相同。