Tôi phải khởi tạo đối tượng NSDate từ NSString trong mục tiêu-c. Tôi làm như sau:Tại sao múi giờ của tôi không được lưu vào 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];
Ví dụ: khi tôi thử với giá trị chuỗi @ "2011-01-02 17:49:54" Tôi nhận được NSDate 2011-01-02 16:49:54 + 0000. Như bạn thấy có sự khác biệt một giờ giữa hai giá trị. NSDate có giá trị sai, nó phải chính xác giống như tôi đã định nghĩa trong chuỗi của tôi trong múi giờ mà tôi đã đặt trong dateFormatter. Dường như nó sử dụng ngày của tôi xác định nó chuỗi như UTC, ngay cả khi tôi đặt múi giờ của nó để "Châu Âu/Budapest". Làm cách nào để khắc phục sự cố này?
Cảm ơn!
Cảm ơn rất nhiều! – Tom
Vì vậy, điều đó có nghĩa là nếu tôi có một múi giờ, tôi không thể lưu trữ ngày vào đối tượng NSDate với múi giờ đó? Tôi sẽ phải lưu trữ múi giờ khác ở đâu và sử dụng nó trong khi hiển thị? – Nil