JPC*_*JPC 5 cocoa objective-c nsdate nstimezone nsdatepicker
我的nib文件中有一个NSDatePicker.在代码中,我将其时区设置为GMT日历的时区:
[datePicker setTimeZone:[calendar timeZone]];
Run Code Online (Sandbox Code Playgroud)
我只关心以编程方式填充的datepicker上的时间(小时,分钟):
NSDate *anyDate = [NSDate date];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:anyDate];
[components setHour:hours];
[components setMinute:minutes];
NSDate *newDate = [calendar dateFromComponents:components];
[datePicker setDateValue:newDate];
Run Code Online (Sandbox Code Playgroud)
这正确地具有将日期选择器时间设置为我想要的时间的期望效果.因此,如果小时数为8,分钟数为30,则日期选择器显示为8:30.但是,如果我在日期选择器的小时字段中输入一个8,它显示为3.奇怪的是某个地方正在进行时区,但我不知道在哪里......
好像我不是第一个遇到这个问题的人.解决方案,对于那些感兴趣的人,我在这里找到http://www.cocoabuilder.com/archive/cocoa/305254-nsdatepicker-weirdness-with-time.html.显然,如果您设置日期选择器的时区而不是日历,则会出现此问题.决议是这样的:
[datePicker setTimeZone:[calendar timeZone]];
[datePicker setCalendar:calendar];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2607 次 |
| 最近记录: |