我需要在我的应用中设置时间。我从服务器(GMT)获得时间戳,我需要根据用户当前时区将该时间戳转换为日期。怎么可能?
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:@"1340907963"];
NSDateFormatter *dFormat = [[[NSDateFormatter alloc] init] autorelease];
[dFormat setDateStyle:NSDateFormatterMediumStyle];
[dFormat setDateFormat:@"d.MM.yyyy"];
NSString *theDate = [dFormat stringFromDate:date];
这是我将时间戳转换为日期的方式。我得到了一些像2012年6月20日23:55这样的东西。但我的实际时间是18:55
答案 0 :(得分:1)
您收到的值是使用
转换它的unix时间(自1970年以来的间隔)NSString * timeStamp = @"1340907963";
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:timeStamp];
然后将其转换为字符串
NSDateFormatter *dFormat = [[[NSDateFormatter alloc] init] autorelease];
[dFormat setTimeZone:[NSTimeZone defaultTimeZone]];
[dFormat setDateFormat:@"dd.MM.yyyy HH:mm:ss zzz"];
NSString *theDate = [dFormat stringFromDate:date];
NSLog(theDate); // 28.06.2012 21:26:03 GMT+03:00
答案 1 :(得分:0)
试试这段代码:
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:@"1340907963"];
NSDateFormatter *dFormat = [[[NSDateFormatter alloc] init] autorelease];
[dFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dFormat setDateStyle:NSDateFormatterMediumStyle];
[dFormat setDateFormat:@"d.MM.yyyy"];
NSString *theDate = [dFormat stringFromDate:date];