更改文本框中的时区

时间:2011-02-27 20:13:07

标签: iphone objective-c datetime

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

我一直在玩替换字符串的小时片段,但这似乎是一个坏主意。

在C#中,我会将字符串转换为DateTime,并在服务器时间和本地时间之间的差异中添加小时数,但我无法弄清楚如何在ObjectiveC中执行此操作。

那么有人可以给出一些提示吗?我从服务器获得的日期/时间字符串如下所示:

2011-02-27 12:10:02

2 个答案:

答案 0 :(得分:0)

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

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;

答案 1 :(得分:0)

我会使用NSDateFormatter将字符串中的日期转换为NSDate对象。您可以使用dateByAddingTimeInterval方法在您的小时内添加。此外,NSCalendar还具有更多用于添加时间间隔的高级功能。