将设备日期和时间转换为PST TimeZone

时间:2013-10-12 09:59:06

标签: iphone ios objective-c nsdate

正如我的标题所说我需要将iPhone设备的日期和时间转换为 PST 时区?

我从服务器获取NSSate NSCate作为 PST时区,因此我需要将当前设备时间转换为 PST时区

在我的应用中。我需要设置UIDatePicker的最小和最大时间,如

最短时间=当前时间; 最长时间=日期(字符串格式)我从服务器获得它。

我使用以下代码

NSString *dateString = [[self.listOfDomains objectAtIndex:indexPath.row] objectForKey:@"ends_at"]; // got from Server 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *maxDate = [[NSDate alloc] init];
    maxDate = [dateFormatter dateFromString:dateString];

    NSCalendar *calMax = [NSCalendar currentCalendar];
    NSDateComponents *pstCompoMax = [calMax components: NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate: maxDate];
    pstCompoMax.timeZone = [NSTimeZone timeZoneWithName: @"PST"];
    NSDate *pstMaxDate = [calMax dateFromComponents: pstCompoMax];

并在datePicker

中使用它
[self.datePicker setMinimumDate:pstMinDate];
[self.datePicker setMaximumDate:pstMaxDate];

但我无法在datePicker中设置最小和最大日期。 但是,如果我只设置datePicker的最小/最大日期,那么它可以工作..

为了解决我的问题,我正在尝试大约2个小时,但我找不到任何解决方案。

  

对于您的信息:我正在使用Xcode 5,我需要在iOS 5到Latter(iOS 7)中进行此操作

请帮我解决这个问题,

提前致谢。

1 个答案:

答案 0 :(得分:0)

问题似乎是NSTimeZone的设置。你可以尝试在datepicker中设置如下所示的时区: -

datePicker.timeZone = [NSTimeZone timeZoneWithName: @"PST"];