在iOS中将GMT转换为IST

时间:2012-08-04 05:35:13

标签: iphone objective-c ios xcode

如何在IOS中将GMT转换为IST?我有代码可以给我时间GMT。但我想将其转换为相应的本地时区并在我的应用程序中使用它。我怎样才能做到这一点 ? 在此先感谢。

3 个答案:

答案 0 :(得分:8)

以下代码将GMT转换为IST。

NSString *inDateStr = @"2000/01/02 03:04:05";
NSString *s = @"yyyy/MM/dd HH:mm:ss";

// about input date(GMT)
NSDateFormatter *inDateFormatter = [[NSDateFormatter alloc] init];
inDateFormatter.dateFormat = s;
inDateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSDate *inDate = [inDateFormatter dateFromString:inDateStr];

// about output date(IST)
NSDateFormatter *outDateFormatter = [[NSDateFormatter alloc] init];
outDateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"IST"];
outDateFormatter.dateFormat = s;
NSString *outDateStr = [outDateFormatter stringFromDate:inDate];

// final output
NSLog(@"[in]%@ -> [out]%@", inDateStr, outDateStr);

答案 1 :(得分:1)

[(NSDateFormatter *) setTimeZone:[NSTimeZone localTimeZone]]; this will give u the local conversion of the GMT to local time zone.

答案 2 :(得分:1)

我在代码下方使用GMT转换为IST。

NSTimeZone *zone1=[NSTimeZone localTimeZone];
long second=[zone1 secondsFromGMT]; //offset
NSDate *currentdate=[NSDate date];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMddyyyy hh:mm:ss"]; // format
[dateFormat setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:second]];

dateStr = [dateFormat stringFromDate:currentdate];
NSLog(@"Current date %@",dateStr);

这可能会有所帮助。

谢谢