我使用以下方法将NSString转换为NSDate。
总是当我从String构造NSDate时,日期是我作为输入的一部分提供的当天后面的一天,小时是18:30:00 +0000。为什么偏离我所提供的。我期待与我提供的日期相同,小时为00:00:00 +0000
+(NSDate*)convertStringToNSDate:(NSString*)string withFormat:(NSString*)format{
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
//[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setDateFormat:format];
NSDate *date = [dateFormat dateFromString:string];
[dateFormat release];
return date;
}
答案 0 :(得分:2)
这个问题经常出现,但我找不到合适的副本(在电话上搜索没有帮助)。
NSDate代表一个特定的时间点。当您记录NSDate的值时,它以GMT显示,比您的时区晚5.5小时(印度,我假设)。所以价值是正确的。如果您通过日期格式化程序运行该日期,则会再次获得当地的午夜时间,因为日期格式化程序正在使用您的本地时区。