2017-09-14 126 views
0

我目前得到的时间为UTC,我希望它是转化为本地时区 NSDate * startDate;如何UTC日期字符串转换为本地时间

例strDate - 14/9/2017上午07时28

要求格式 - 14/9/2017 1.52 pm

我需要帮助与目标c。

NSDate * startDate; //包含UTC日期

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE, MMM d, yyyy - h:mm a"]; 
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; 
NSString *timestamp = [dateFormatter stringFromDate:startDate]; 

,但这是不正确的时间,但日期是正确的

+1

添加你的代码片段,以显示你迄今为止做了什么? – cole

+0

'NSDateFormatter'是你正在寻找的工具。 – Larme

+0

你有什么尝试?你写的代码在哪里?请读一读[Ask] –

回答

0

先转换的NSString的NSDate。

NSDateFormatter *DateFormatter = [[NSDateFormatter alloc] init]; 
NSTimeZone *timeZoneEDT =[NSTimeZone timeZoneWithName:@"GMT"]; 
[DateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4]; 
[DateFormatter setTimeZone:timeZoneEDT]; 
[DateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"]; 
NSDate *CurrentDate = [DateFormatter dateFromString:DateStr]; 

然后将GMT时间转换为当地时间。

NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithName:@"Asia/Kolkata"]; 
[dateFormatter setTimeZone:sourceTimeZone]; 
NSString *dateRepresentation = [dateFormatter stringFromDate:dateFromString]; 
0

@athira试试这个。这个对我有用。

NSDate *startDate = [NSDate date]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"dd/M/yyyy h.mm a"]; 
    [dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; 
    NSString *timestamp = [dateFormatter stringFromDate:startDate]; 
    NSLog(@"date = %@",timestamp); //date = 14/9/2017 4.34 PM 

它将使用GMT + 5:30打印当前时间,并使用localTimeZone。

相关问题