NSDate conversion utilities

董飞
2023-12-01

// Gets UTC NSDate from DateTime(.Net/WCF).

+ (NSDate *)fromDateTime:(NSString *)dateTime {
    NSDate *utcDate;
    if ([dateTime isMemberOfClass:[NSNull class]]) {
        utcDate = nil;
    } else {
        NSInteger offset = [[NSTimeZone timeZoneWithName:@"UTC"] secondsFromGMT];
        utcDate = [[NSDate dateWithTimeIntervalSince1970:[[dateTime substringWithRange:NSMakeRange(6, 10)] intValue]] dateByAddingTimeInterval:offset];
    }
    
    return utcDate;
}

// Converts NSDate to UTC DateTime(.Net/WCF).

- (NSString *)toDateTime {
    NSDateFormatter *utcFormatter = [[NSDateFormatter alloc] init];
    [utcFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
    
    return [NSString stringWithFormat:@"/Date(%.0f000%@)/", [self timeIntervalSince1970],[utcFormatter stringFromDate:self]];
}


// Converts UTC NSDate to local time.

- (NSString *)utcToLocalTime {
    // offset second
    NSInteger seconds = [[NSTimeZone systemTimeZone] secondsFromGMT];
    
    NSDateFormatter *localTimeFormatter = [[NSDateFormatter alloc] init];
    [localTimeFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];
    [localTimeFormatter setTimeZone :[NSTimeZone timeZoneForSecondsFromGMT: seconds]];
    
    return [localTimeFormatter stringFromDate:self];
}


 类似资料:

相关阅读

相关文章

相关问答