简体   繁体   English

转换PST格式NSDate的字符串日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM