我有一个NSString
这样的:
NSString *playTime = @"20:45";// GMT
我需要将此字符串转换为NSDate
(仅小时和秒),然后调整为设备时区。
例子:
如果用户设备时区设置为GMT,我需要这样的结果:@"20:45";
如果用户设备时区设置为GMT + 2,我需要这样的结果:@"22:45";
我有一个NSString
这样的:
NSString *playTime = @"20:45";// GMT
我需要将此字符串转换为NSDate
(仅小时和秒),然后调整为设备时区。
例子:
如果用户设备时区设置为GMT,我需要这样的结果:@"20:45";
如果用户设备时区设置为GMT + 2,我需要这样的结果:@"22:45";
试试这个
NSString *gmtDateString = @"20:45";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[dateFormatter setDateFormat:@"HH:mm"];
//Now you have date in GMT time zone by default dateFormatter timezone would be in local time zone
NSDate *date = [dateFormatter dateFromString:dateString];
//set to local time zone
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
//Now you have string in localDate format
NSString *localDateString = [dateFormatter stringFromDate:date];
根据您的要求使用此代码进行日期转换。
NSDateFormatter *dateFormat = [NSDateFormatter new];
[dateFormat setDateFormat:@"HH:mm"];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
logDate = [dateFormat dateFromString:@"20:45"];
NSLog(@"Date %@",[dateFormat stringFromDate:logDate]);
下面的代码将计算本地时区的时间。
假设我的时区是GMT+05:30
这样,时间05:30
会变成00:00
.
NSString *playTime = @"20:45";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"HH:mm";
NSDate *date = [formatter dateFromString:playTime];
NSLog(@"%@",date);
日志是: 2000-01-01 15:15:00 +0000