Iphone 在文本框中更改时区

Iphone 在文本框中更改时区,iphone,objective-c,datetime,Iphone,Objective C,Datetime,我有一个小的IOS程序,可以从数据库服务器获取时间。我想将其转换为用户本地时间(我总是知道服务器的时区) 我一直在试着换一段时间的弦,但这似乎是个坏主意 在C#中,我会将字符串转换为DateTime,并在服务器时间和本地时间之间的差异中添加小时数,但在ObjectiveC中我根本不知道如何做到这一点 有人能给我一些提示吗?从服务器获取的日期/时间字符串如下所示: 2011-02-27 12:10:02我认为这应该适用于当地时间: NSDateFormatter *dateFormatter =

我有一个小的IOS程序,可以从数据库服务器获取时间。我想将其转换为用户本地时间(我总是知道服务器的时区)

我一直在试着换一段时间的弦,但这似乎是个坏主意

在C#中,我会将字符串转换为DateTime,并在服务器时间和本地时间之间的差异中添加小时数,但在ObjectiveC中我根本不知道如何做到这一点

有人能给我一些提示吗?从服务器获取的日期/时间字符串如下所示:


2011-02-27 12:10:02

我认为这应该适用于当地时间:

NSDateFormatter *dateFormatter = [NSDateFormatter alloc] init];
NSLocale *serverLocale = [NSLocale alloc] initWithLocaleIdentifier:@"en_US"];//Change to Server Locale
[dateFormatter setLocale:serverLocale];
[serverLocale release];
[dateFormatter setDateFormat:@"YYYY-MM-DD HH:MM:SS"];
NSDate *date = [dateFormatter dateFromString:@"2011-02-27 12:10:02 "];
//Replace the locale below with what you need
NSString *dateString = [date descriptionWithLocale:[NSLocale currentLocale]];
[dateFormatter release];
textField.text = dateString;

我将使用NSDateFormatter将字符串中的日期转换为和NSDate对象。您可以使用dateByAddingTimeInterval方法添加小时。另外,NSCalendar还有更多用于添加时间间隔的高级函数。

谢谢,这给了我所需的提示,我最终使用了以下代码:NSDate*date=[dateFormatter dateFromString:myString];NSTimeZone*tz=[NSTimeZone localTimeZone];NSTimeInterval间隔=[tz secondsFromGMT];日期=[date addTimeInterval:interval];我想你误解了这个问题,我需要把时差加到我的时间里。但是谢谢你的代码,我很高兴看到如何以本地格式显示til。