我有一个小的IOS程序,从数据库服务器获取时间。我想将其转换为用户本地时间(我总是知道服务器的时区)。
我一直在玩替换字符串的小时片段,但这似乎是一个坏主意。
在C#中,我会将字符串转换为DateTime,并在服务器时间和本地时间之间的差异中添加小时数,但我无法弄清楚如何在ObjectiveC中执行此操作。
那么有人可以给出一些提示吗?我从服务器获得的日期/时间字符串如下所示:
2011-02-27 12:10:02
答案 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还具有更多用于添加时间间隔的高级功能。