我在这个日期格式化程序中做错了什么

时间:2012-04-02 12:46:35

标签: iphone ios nsdateformatter

 NSDate *date=[[NSDate alloc] init];
    NSDateFormatter *dfLocal=[[NSDateFormatter alloc]init];
    [dfLocal setDateFormat:@"yyyy-MM-dd"];
    date=[dfLocal dateFromString:@"2011-09-22"];
    NSLog(@"the date is %@",date);

这是我的代码并将输出显示为..

2012-04-02 18:13:45.338 TimeProblem[2656:207] the date is 2011-09-21 18:30:00 +0000

为什么要追加这个...... 18:30:00 +0000到底......?我只想把它当作00:00:00 +0000

3 个答案:

答案 0 :(得分:3)

使用以下:

NSDate *date=[[NSDate alloc] init];
NSDateFormatter *dfLocal=[[NSDateFormatter alloc]init];
[dfLocal setDateFormat:@"yyyy-MM-dd"];
[dfLocal setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
date=[dfLocal dateFromString:@"2011-09-22"];

NSLog(@"the date is %@",date);

答案 1 :(得分:1)

你在GMT + 5.30。这就是你获得时间偏移的原因。这是一个时区问题。添加此行可以解决问题。

 [dfLocal setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

答案 2 :(得分:0)

嗨,你想获得日期和时间,然后像这样使用。

[dfLocal setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

希望这会对你有所帮助。