我目前有时间作为UTC,我希望它能转换为本地时区
NSDate * startDate;
示例strDate - 14/9/2017 7.28 Am
所需格式 - 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];
但这不是正确的时间,但日期是正确的
答案 0 :(得分: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];
答案 1 :(得分: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。