修改:根据下面的Martins评论更新帖子
您好,
我只是想从字符串中获取日期,我的代码如下:
NSString *strStartDateTime = [startTimeArray objectAtIndex:i];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *dtStartDateTime;
dtStartDateTime = [formatter dateFromString: strStartDateTime];
strStartDateTime的值为“2010-09-30 15:23:30”,但此代码返回的值为“2010-09-30 14:23:30 GMT”,我想要的只是'2010-09 -30 15:23:30'按照字符串。
是否考虑了日光节约时间。这非常令人沮丧,我只想将NSString转换为NSDate并更改其值。
此致 斯蒂芬
答案 0 :(得分:2)
我不太明白你的问题。你是什么意思“它给了我GMT价值”?你的意见是什么?你的预期产量是多少?
如果您遇到时区转换问题,可以尝试设置格式化程序的时区:
[formatter setTimeZone:[NSTimeZone localTimeZone]];
或
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
正如我所说,这完全取决于输入和预期输出是什么。
编辑:
你实际上没有问题。日期被正确解析。您可以这样验证:
NSString *strStartDateTime = [startTimeArray objectAtIndex:i];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *dtStartDateTime = [formatter dateFromString: strStartDateTime];
NSString *parsedDateAsString = [formatter stringFromDate:dtSTartTime];
// parsedDateAsString will have the correct value