格式化日期

时间:2010-10-01 11:45:48

标签: iphone date

修改:根据下面的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并更改其值。

此致 斯蒂芬

1 个答案:

答案 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