2017-09-14 125 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。

相關問題