objective-c之NSString到NSDate返回错误的日期

soundcode 阅读:86 2025-06-02 22:19:02 评论:0

我尝试将NSString转换为NSDate对象,但NSDateFormatter返回了一个奇怪的值。

这是代码:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];  
NSDate *date = [dateFormat dateFromString:@"2012-08-15 00:00"]; 
[dateFormat release]; 
date的值为 2012-08-14 21:00 +0000NSString值和 NSDate值相差3小时。我想我错过了一些东西,但是我不知道是什么。

请您参考如下方法:

这就是我用的:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];  
 
NSDate *date = [dateFormat dateFromString:@"2012-08-15 00:00:00 +0000"]; 
NSLog(@"\n\n  DATE: %@ \n\n\n", date); 
+0000是时区,因此请确保使用时区,例如 +0400

编辑:
如果您无法更改字符串,则可以使用以下代码进行操作:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];  
[dateFormat setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
 
NSDate *date = [dateFormat dateFromString:@"2012-08-15 00:00"]; 


标签:日期
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号