我必须从objective-c中的NSString初始化一个NSDate对象。我不喜欢这样写道:为什么我的时区不能保存到我的NSDate中?
NSString *dateString = [[webSentence child:@"DateTime"].text stringByReplacingOccurrencesOfString:@"T" withString:@" "];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Budapest"]];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:dateString];
例如:当我和字符串值试试@“2011-01-02 17点49分54秒”我得到一个NSDate 2011-01-02 16点49分54秒+ 0000。正如你所看到的,两个值之间有一个小时的差异。 NSDate有一个错误的值,它应该与我在dateFormatter中设置的时区中的字符串中定义的值完全相同。它似乎使用我的日期定义它的字符串作为UTC,即使我将其时区设置为“欧洲/布达佩斯”。我该如何解决这个问题?
谢谢!
非常感谢! – Tom 2012-01-15 01:11:24
那么这意味着如果我有一个时区,我不能将日期存储到具有该时区的NSDate对象中?我将不得不在显示的时候在其他地方和用户存储时区? – Nil 2016-06-15 07:41:17