我从我的服务器上获得时间,格式为yyyy-MM-ddTHH:mm:ss,例如2014-05-21T09:30:00。我将这些转换为NSDate并使用下面的代码保存在iphone上的sqlite
NSString *strDate = @"2014-05-21T09:30:00";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone:[NSTimeZone timeZoneWithName:@"EDT"]];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDate *date = [df dateFromString:strDate];
在我更改设备上的时区之前,它可以正常工作。如果我改变设备上的时间就搞砸了。知道我在这里做错了什么吗?
如何保存这些时间,无论用户位于哪个时区,他们总能看到东部时间。
谢谢,
d
答案 0 :(得分:1)
NSDate
本身不知道时区;它只是一个围绕double值的简单包装器,它表示自某个固定时间(我想2001年1月1日或其他什么)UTC以来的秒数。
您需要的是NSDateFormatter
,类似于您用来解析日期的NSDate
,可以使用EDT时区将NSString
转换为{{1}}。