[英]Convert string date of PST format NSDate
I want to convert @"2016-04-15T15:00:00-07:00"
to NSDate
in objective C. I am using the NSdateFormatter
@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"
but not getting the NSDate
我想在目标C NSdateFormatter
@"2016-04-15T15:00:00-07:00"
为NSDate
。我正在使用NSdateFormatter
@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"
NSDate
I have to make the string date from server to PST time NSDate 我必须将字符串日期从服务器设置为PST时间NSDate
Code : 代码:
NSString *strDate = @"2016-04-15T22:00:00Z";
NSDate* ts_utc;
NSDateFormatter* df_utc = [[NSDateFormatter alloc] init];
[df_utc setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df_utc setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
ts_utc = [df_utc dateFromString:strDate];
NSDateFormatter* df_local = [[NSDateFormatter alloc] init];
[df_local setTimeZone:[NSTimeZone timeZoneWithName:@"PST"]];
[df_local setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
NSString* ts_local_string = [df_local stringFromDate:ts_utc];
NSDate *date = [df_local dateFromString:ts_local_string];
Please suggest. 请提出建议。
EDIT 编辑
I had the same problem as you and I solved it in that way 我和你有同样的问题,我以这种方式解决了
NSString *strDate = @"2016-04-15T22:00:00Z";
NSDate* ts_utc;
NSDateFormatter* df_utc = [[NSDateFormatter alloc] init];
[df_utc setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df_utc setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
ts_utc = [df_utc dateFromString:strDate];
NSTimeZone *destinationTimeZone = [NSTimeZone timeZoneWithName:@"PST"];
NSInteger timeZoneHourOffset = (NSInteger) ([destinationTimeZone secondsFromGMTForDate:ts_utc] / 3600.0); //geting the time offset between UTC and PST
NSDate *pstDate = [ts_utc dateByAddingTimeInterval:timeZoneHourOffset * 60 * 60]; //applying that offset into ts_utc NSDate
Hope, this will hep you ! 希望,这会帮助您!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.