将日期和时间转换为本地日期和时间格式

时间:2013-04-03 06:57:44

标签: objective-c nsdate

我在设备的当前(本地)日期和时间转换日期和时间时遇到问题。 我从API格式2013-04-03 01:07:56 +0000获取日期,我想以本地日期和时间格式转换此日期并显示。任何人都可以建议我如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

只需在dateFormatter中设置timeZone,此代码就足够了

NSString *dateString = @"24 08 2011 09:45PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd MM yyyy hh:mma"];
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"BST"];
[dateFormatter setTimeZone:sourceTimeZone];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];

dateFromString现在将具有日期24 08 2011 08:45 PM(GMT)..然后将其转换为具有本地时间的字符串,只需编写以下代码,

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone localTimeZone]];
[formatter setLocale:[NSLocale systemLocale]];

[dateFormatter setDateFormat:@"dd MM yyyy hh:mma"];
NSString *stringFromDAte = [dateFormatter stringFromDate:dateString];